Détail du package

@typescript-eslint/typescript-estree

typescript-eslint286.4mMIT8.31.0

A parser that converts TypeScript source code into an ESTree compatible form

ast, estree, ecmascript, javascript

readme

changelog

8.31.0 (2025-04-21)

🚀 Features

  • eslint-plugin: [no-unnecessary-type-assertion] add option to ignore string const assertions (#10979)

🩹 Fixes

  • typescript-eslint: address bugs in config() around global ignores (#11065)
  • typescript-eslint: gracefully handle invalid flat config objects in config helper (#11070)

❤️ Thank You

  • Kirk Waiblinger @kirkwaiblinger
  • Nicolas Le Cam

You can read about our versioning strategy and releases on our website.

8.30.1 (2025-04-14)

🩹 Fixes

  • eslint-plugin: fix mistake with eslintrc config generation (#11072)

❤️ Thank You

  • Kirk Waiblinger @kirkwaiblinger

You can read about our versioning strategy and releases on our website.

8.30.0 (2025-04-14)

🚀 Features

  • eslint-plugin: [no-explicit-any] suggest to replace keyof any with PropertyKey (#11032)

🩹 Fixes

  • eslint-plugin: [promise-function-async] use a different error message for functions with promise and non-promise types (#10950)
  • typescript-estree: use token type of PrivateIdentifier instead of Identifier for private identifiers (#11023)

❤️ Thank You

  • Dima Barabash @dbarabashh
  • Ronen Amiel

You can read about our versioning strategy and releases on our website.

8.29.1 (2025-04-07)

🩹 Fixes

  • eslint-plugin: [no-deprecated] report on deprecated imported variable used as property (#10998)
  • typescript-estree: use token type of Numeric instead of Identifier for bigint literals (#11021)

❤️ Thank You

  • Ronen Amiel

You can read about our versioning strategy and releases on our website.

8.29.0 (2025-03-31)

🚀 Features

  • eslint-plugin: [prefer-nullish-coalescing] create ignoreIfStatements option (#11000)

🩹 Fixes

  • eslint-plugin: [no-unnecessary-condition] don't report on unnecessary optional array index access when noUncheckedIndexedAccess is enabled (#10961)
  • eslint-plugin: [use-unknown-in-catch-callback-variable] remove fixable property (#10993)
  • eslint-plugin: [prefer-for-of] fix false positive when using erasable type syntax within update expressions (#10981)
  • eslint-plugin: support arbitrary extensions in definition files (#10957)
  • eslint-plugin: [no-array-constructor] remove optional chaining exemption (#10963)

❤️ Thank You

  • Dima Barabash @dbarabashh
  • Kim Sang Du @developer-bandi
  • Olivier Zalmanski @OlivierZal
  • Ronen Amiel
  • Yannick Decat @mho22
  • zyoshoka @zyoshoka

You can read about our versioning strategy and releases on our website.

8.28.0 (2025-03-24)

🚀 Features

  • eslint-plugin: [prefer-nullish-coalescing] support if statement assignment (??=) and fix several minor bugs (#10861)

🩹 Fixes

  • eslint-plugin: [no-unsafe-function-type] remove fixable property (#10986)

❤️ Thank You

  • Olivier Zalmanski @OlivierZal
  • Yannick Decat @mho22

You can read about our versioning strategy and releases on our website.

8.27.0 (2025-03-17)

🚀 Features

  • utils: support DeprecatedInfo for rule.meta.deprecated (#10932)

🩹 Fixes

  • deps: update eslint monorepo to v9.22.0 (#10952)
  • typescript-estree: fix span start for decorated AssignmentPattern function parameter (#10939)

❤️ Thank You

  • ntnyq @ntnyq
  • Ronen Amiel

You can read about our versioning strategy and releases on our website.

8.26.1 (2025-03-10)

🩹 Fixes

  • eslint-plugin: [prefer-nullish-coalescing] treat any/unknown as eligible for nullish coalescing (#10865)
  • eslint-plugin: [no-unsafe-return] handle recursive type (#10883)
  • rule-tester: export TestLanguageOptions (#10930)

❤️ Thank You

  • Dave @reduckted
  • Kirk Waiblinger @kirkwaiblinger
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

8.26.0 (2025-03-03)

🚀 Features

  • support TypeScript 5.8 (#10903)
  • eslint-plugin: [no-unnecessary-type-parameters] special case tuples and parameter location arrays as single-use (#9536)
  • eslint-plugin: [no-unused-var] handle implicit exports in declaration files (#10714)
  • eslint-plugin: [explicit-module-boundary-types] add an option to ignore overload implementations (#10889)
  • eslint-plugin: [unified-signatures] support ignoring overload signatures with different JSDoc comments (#10781)
  • rule-tester: export TestLanguageOptions (#10892)
  • scope-manager: only call Object.entries once for each lib (#10647)

🩹 Fixes

  • deps: update dependency typedoc-plugin-markdown to v4.4.2 (#10877)
  • eslint-plugin: [unified-signatures] does not differentiate truly private methods (#10806)
  • eslint-plugin: [no-invalid-void-type] report accessor properties with an invalid void type (#10864)
  • eslint-plugin: [no-unnecessary-type-assertion] handle unknown (#10875)
  • rule-tester: Add missing parser dependency (#10909)

❤️ Thank You

  • Andrea Simone Costa @jfet97
  • Dave @reduckted
  • David Michon
  • Dirk Luijk @dirkluijk
  • fregante @fregante
  • Ronen Amiel
  • YeonJuan @yeonjuan
  • Yukihiro Hasegawa @y-hsgw

You can read about our versioning strategy and releases on our website.

8.25.0 (2025-02-24)

🚀 Features

  • eslint-plugin: [no-misused-spread] add suggestions (#10719)

🩹 Fixes

  • ast-spec: replace attributes with options property in TSImportType (#10691)
  • eslint-plugin: [unified-signatures] handle getter-setter (#10818)
  • eslint-plugin: [no-deprecated] report usage of deprecated private identifiers (#10844)
  • eslint-plugin: [prefer-nullish-coalescing] report on chain expressions in a ternary (#10708)
  • typescript-estree: align TS module nodes to namespaces (#10504)
  • visitor-keys: update keys for ImportAttribute (#10649)

❤️ Thank You

  • Anthony Fu
  • fisker Cheung @fisker
  • Josh Goldberg ✨
  • Olivier Zalmanski @OlivierZal
  • Ronen Amiel
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

8.24.1 (2025-02-17)

🩹 Fixes

  • deps: update eslint monorepo to v9.20.0 (#10834)
  • eslint-plugin: [no-inferrable-types] handle accessor (#10780)
  • eslint-plugin: [no-unnecessary-template-expression] ignore enum and enum members (#10782)
  • eslint-plugin: [no-unsafe-assignment] report on an any value assigned as an initializer of an accessor property (#10785)
  • eslint-plugin: [consistent-generic-constructors] check accessor class properties (#10789)
  • eslint-plugin: [prefer-return-this-type] check accessor properties with a function initializer (#10794)
  • eslint-plugin: [explicit-module-boundary-types] check accessor class properties with a function initializer (#10804)
  • eslint-plugin: [explicit-member-accessibility] check accessor class properties for missing accessibility modifier (#10805)
  • eslint-plugin: [no-deprecated] don't report on deprecated accessor property declaration (#10813)
  • eslint-plugin: [no-misused-promises] don't report on static accessor properties (#10814)
  • eslint-plugin: [class-methods-use-this] check accessor methods with a function initializer (#10796)

❤️ Thank You

  • Ronen Amiel
  • YeonJuan

You can read about our versioning strategy and releases on our website.

8.24.0 (2025-02-10)

🚀 Features

  • eslint-plugin: [no-unnecessary-condition] make allowConstantLoopConditions more granular (#10639)
  • utils: add reportUnusedInlineConfigs to LinterOptions (#10718)

🩹 Fixes

  • ast-spec: correct YieldExpression.argument type (#10799)
  • eslint-plugin: [restrict-plus-operands] report adding bigints to strings when allowNumberAndString is false (#10737)
  • eslint-plugin: [no-misused-spread] correct and elaborate string spread report message (#10751)

❤️ Thank You

  • Flo Edelmann @FloEdelmann
  • Josh Goldberg ✨
  • Mark de Dios @peanutenthusiast
  • noah
  • Ronen Amiel

You can read about our versioning strategy and releases on our website.

8.23.0 (2025-02-03)

🚀 Features

  • eslint-plugin: [no-unnecessary-boolean-literal-compare] enforce strictNullChecks (#10712)
  • types: add strict parent types for function-declaration, default-export and named-export nodes (#10685)

🩹 Fixes

  • bump ts-api-utils to ^2.0.1 (#10761)
  • deps: update eslint monorepo to v9.19.0 (#10752)
  • eslint-plugin: [no-unnecessary-type-assertion] should report readonly class properties with a literal initializer (#10618)
  • eslint-plugin: [switch-exhaustiveness-check] suggest with qualified name (#10697)
  • eslint-plugin: [no-unnecessary-template-expression] allow interpolating type parameter in type context (#10739)
  • eslint-plugin: [prefer-nullish-coalescing] fix missing return (#10732)
  • eslint-plugin: [dot-notation] handle noPropertyAccessFromIndexSignature true (#10644)
  • eslint-plugin: [no-restricted-imports] support regex option (#10699)
  • eslint-plugin: [no-shadow] ignore declare variables in definition files shadowing global variables (#10710)

❤️ Thank You

  • Josh Goldberg ✨
  • Olivier Zalmanski @OlivierZal
  • Ronen Amiel
  • Ryan Poon @sopa301
  • YeonJuan @yeonjuan
  • Yukihiro Hasegawa @y-hsgw

You can read about our versioning strategy and releases on our website.

8.22.0 (2025-01-27)

🚀 Features

  • parser: add standalone isolatedDeclarations option (#10499)

🩹 Fixes

  • eslint-plugin: [prefer-nullish-coalescing] doesn't report on ternary but on equivalent || (#10517)
  • eslint-plugin: [no-duplicate-type-constituents] handle nested types (#10638)
  • eslint-plugin: [no-shadow] don't report unnecessarily on valid ways of using module augmentation (#10616)
  • eslint-plugin: [no-extraneous-class] handle accessor keyword (#10678)
  • eslint-plugin: [prefer-readonly] autofixer doesn't add type to property that is mutated in the constructor (#10552)
  • eslint-plugin: [no-unnecessary-template-expression] handle template literal type (#10612)
  • type-utils: support matching intersection types in TypeOrValueSpecifier with a PackageSpecifier (#10667)

❤️ Thank You

  • Josh Goldberg ✨
  • mdm317
  • Olivier Zalmanski @OlivierZal
  • Ronen Amiel
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

8.21.0 (2025-01-20)

🚀 Features

  • ast-spec: support import attributes in TSImportType (#10640)

🩹 Fixes

  • eslint-plugin: [no-unnecessary-type-arguments] handle type args on jsx (#10630)
  • eslint-plugin: check JSX spread elements for misused spread usage (#10653)
  • eslint-plugin: [no-for-in-array] report on any type which may be an array or array-like (#10535)
  • eslint-plugin: [no-base-to-string] don't crash for recursive array or tuple types (#10633)
  • eslint-plugin: [no-duplicate-enum-values] handle template literal (#10675)
  • eslint-plugin-internal: [debug-namespace] on windows (#10661)
  • rule-tester: handle window root path (#10654)
  • scope-manager: add a reference for JSX closing element if it exists (#10614)

❤️ Thank You

  • Arya Emami @aryaemami59
  • Ronen Amiel
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

8.20.0 (2025-01-13)

🚀 Features

  • standardize debug namespaces to file paths (#10599)
  • eslint-plugin: [no-misused-spread] add new rule (#10551)
  • eslint-plugin: [no-deprecated] add allow options (#10585)
  • eslint-plugin: [consistent-type-assertions] add arrayLiteralTypeAssertions options (#10565)

🩹 Fixes

  • eslint-plugin: [no-shadow] ignore ordering of type declarations (#10593)
  • eslint-plugin: [no-unnecessary-condition] don't flag optional chaining for union types with an unconstrained type parameters (#10602)

❤️ Thank You

  • Josh Goldberg ✨
  • Ronen Amiel
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

8.19.1 (2025-01-06)

🩹 Fixes

  • eslint-plugin: [no-base-to-string] check array generic type (#10437)
  • eslint-plugin: [no-shadow] report correctly on parameters of functions declared with the declare keyword (#10543)
  • eslint-plugin: [strict-boolean-expressions] remove remaining (unsafe) autofixes (#10548)
  • eslint-plugin: [no-deprecated] doesn't report on shorthand property in an object expression (#10550)
  • eslint-plugin: [no-unnecessary-type-assertion] handle literal types (#10523)

❤️ Thank You

  • Kirk Waiblinger
  • mdm317
  • Ronen Amiel
  • Yukihiro Hasegawa @y-hsgw

You can read about our versioning strategy and releases on our website.

8.19.0 (2024-12-30)

🚀 Features

  • eslint-plugin: [strict-boolean-expressions] check array predicate functions' return statements (#10106)

🩹 Fixes

  • eslint-plugin: add getConstraintInfo to handle generic constraints better (#10496)
  • eslint-plugin: [array-type] autofix with conditional types needs parentheses (#10522)
  • eslint-plugin: [consistent-indexed-object-style] don't report on indirect circular references (#10537)
  • eslint-plugin: [member-ordering] ignore method overloading (#10536)

❤️ Thank You

  • Karl Werner
  • Kirk Waiblinger @kirkwaiblinger
  • Ronen Amiel
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

8.18.2 (2024-12-23)

🩹 Fixes

  • eslint-plugin: [no-deprecated] not reporting usages of deprecated declared constants as object value (#10498)
  • eslint-plugin: [prefer-reduce-type-parameter] don't report cases in which the fix results in a type error (#10494)
  • eslint-plugin: [no-unnecessary-condition] don't flag values of an unconstrained or valid type parameter (#10473)
  • eslint-plugin: [consistent-indexed-object-style] use a suggestion over an auto-fix if can't reliably determine that produced index signature is valid (#10490)
  • eslint-plugin: [no-unsafe-type-assertion] fix for unsafe assertion to a constrained type parameter (#10461)
  • eslint-plugin: [no-unnecessary-type-arguments] handle type/value context (#10503)
  • eslint-plugin: [consistent-type-assertions] allow default assertionStyle option (#10512)
  • eslint-plugin: [no-unnecessary-condition] handle noUncheckedIndexedAccess true (#10514)
  • typescript-eslint: export types so that declarations can be named for dts files (#10513)

❤️ Thank You

  • Brad Zacher @bradzacher
  • Luke Deen Taylor @controversial
  • Ronen Amiel
  • Scott O'Hara
  • YeonJuan @yeonjuan
  • Yukihiro Hasegawa @y-hsgw

You can read about our versioning strategy and releases on our website.

8.18.1 (2024-12-16)

🩹 Fixes

  • eslint-plugin: [no-unnecessary-template-expression] don't report when an expression includes comment (#10444)
  • eslint-plugin: handle string like index type (#10460)
  • eslint-plugin: [no-unnecessary-boolean-literal-compare] flag values of a type parameter with boolean type constraints (#10474)
  • eslint-plugin: use consistent naming for asserting types and casting values (#10472)
  • eslint-plugin: [no-unnecessary-condition] better message when comparing between literal types (#10454)
  • scope-manager: visit params decorator before nest scope (#10475)

❤️ Thank You

  • Kirk Waiblinger @kirkwaiblinger
  • Ronen Amiel
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

8.18.0 (2024-12-09)

🚀 Features

  • eslint-plugin: [no-deprecated] report on super call of deprecated constructor (#10397)
  • eslint-plugin: [switch-exhaustiveness-check] add support for "no default" comment (#10218)

🩹 Fixes

  • typescript peer dependency (#10373)
  • deps: update dependency eslint to v9.16.0 (#10471)
  • eslint-plugin: [no-deprecated] check if a JSX attribute is deprecated (#10374)
  • eslint-plugin: [no-base-to-string] handle more robustly when multiple toString() declarations are present for a type (#10432)
  • eslint-plugin: [use-unknown-in-catch-callback-variable] only flag function literals (#10436)

❤️ Thank You

  • Kim Sang Du @developer-bandi
  • Kirk Waiblinger @kirkwaiblinger
  • mdm317
  • rtritto

You can read about our versioning strategy and releases on our website.

8.17.0 (2024-12-02)

🚀 Features

  • eslint-plugin: [prefer-promise-reject-errors] options to allow any and unknown (#10392)
  • typescript-estree: add package version to ts version warning (#10343)

🩹 Fixes

  • eslint-plugin: [no-unnecessary-template-expressions] allow template expressions used to make trailing whitespace visible (#10363)
  • eslint-plugin: remove references to "extendDefaults" in no-restricted-types (#10401)
  • eslint-plugin: [promise-function-async] handle function overloading (#10304)
  • website: press the Report an Issue button makes error if eslintrc does not include rules (#10367)

❤️ Thank You

  • Kim OhSeong @bkks1004
  • Kim Sang Du @developer-bandi
  • Kirk Waiblinger @kirkwaiblinger
  • Marco Pasqualetti @marcalexiei
  • Maria José Solano @MariaSolOs
  • Ronen Amiel

You can read about our versioning strategy and releases on our website.

8.16.0 (2024-11-25)

🚀 Features

  • support TypeScript 5.7 (#10372)
  • eslint-plugin: [max-params] add function overload and function type support (#10312)
  • eslint-plugin: [no-base-to-string] check Array.prototype.join (#10287)

🩹 Fixes

  • typescript-estree: update conditions for unsupported version warning (#10385)

❤️ Thank You

  • Inga @inga-lovinde
  • Josh Goldberg ✨
  • Kim Sang Du @developer-bandi
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

8.15.0 (2024-11-18)

🚀 Features

  • eslint-plugin: added related-getter-setter-pairs rule (#10192)
  • eslint-plugin: new rule no-unsafe-type-assertion (#10051)
  • eslint-plugin: [prefer-nullish-coalescing] fix detection of ignoreConditionalTests involving boolean ! operator (#10299)
  • rule-tester: run method - avoid to infer type parameter from tests param (#10324)
  • typescript-eslint: allow infinitely deep array nesting in config function and extends (#10333)
  • utils: add new optional language field to FlatConfig.Config type (#10326)

🩹 Fixes

  • add missing peer dependencies (#9744)
  • eslint-plugin: [consistent-indexed-object-style] handle circular mapped types (#10301)
  • eslint-plugin: [await-thenable, return-await] don't flag awaiting unconstrained type parameter as unnecessary (#10314)
  • eslint-plugin: [explicit-module-boundary-types] and [explicit-function-return-type] don't report on as const satisfies (#10315)
  • eslint-plugin: report deprecations used in default export (#10330)
  • utils: add defaultOptions to meta in rule (#10339)

❤️ Thank You

  • Bartosz @burtek
  • Brad Zacher @bradzacher
  • Ethan Wu
  • Josh Goldberg ✨
  • Kim Sang Du @developer-bandi
  • Luis Sebastian Urrutia Fuentes @LuisUrrutia
  • Marco Pasqualetti @marcalexiei
  • Phillip Huang
  • Ronen Amiel
  • Szydlak @wszydlak

You can read about our versioning strategy and releases on our website.

8.14.0 (2024-11-11)

🚀 Features

  • eslint-plugin: [no-confusing-void-expression] add an option to ignore void<->void (#10067)
  • eslint-plugin: [await-thenable] report unnecessary await using statements (#10209)

🩹 Fixes

  • deps: update dependency eslint to v9.14.0 (#10309)
  • deps: update docusaurus monorepo to v3.6.0 (#10319)
  • eslint-plugin: [no-unnecessary-condition] improve error message for literal comparisons (#10194)
  • eslint-plugin: [no-misused-promises] improve report loc for methods (#10216)
  • scope-manager: fix asserted increments not being marked as write references (#10271)

❤️ Thank You

  • Gyumong @Gyumong
  • Jan Ochwat @janek515
  • Kirk Waiblinger @kirkwaiblinger
  • Ronen Amiel

You can read about our versioning strategy and releases on our website.

8.13.0 (2024-11-04)

🚀 Features

  • add options property to ImportExpression node (#10255)
  • eslint-plugin: disable no-class-assign rule in eslint-recommended config (#10250)
  • eslint-plugin: [prefer-nullish-coalescing] add option ignoreBooleanCoercion (#9924)
  • eslint-plugin: [only-throw-error] add allow option (#10221)

🩹 Fixes

  • deps: update dependency @eslint-community/regexpp to v4.12.1 (#10269)
  • eslint-plugin: [no-unnecessary-condition] falsey bigint should be falsey (#10205)
  • eslint-plugin: [no-deprecated] report on deprecated variables used inside dynamic imports (#10261)
  • eslint-plugin: [no-deprecated] report when exported class implements/extends deprecated entity (#10259)
  • eslint-plugin: [consistent-type-definitions] don't leave trailing parens when fixing type to interface (#10235)
  • eslint-plugin: [switch-exhaustiveness-check] add support for covering a missing property with undefined (#10232)
  • types: parent property type annotation in the ImportAttribute node (#10258)
  • utils: allow an array for the values of SharedConfig (#10217)

❤️ Thank You

  • auvred @auvred
  • Kim Sang Du @developer-bandi
  • Kirk Waiblinger @kirkwaiblinger
  • Mark de Dios @peanutenthusiast
  • Ronen Amiel
  • Trygve Aaberge
  • YeonJuan @yeonjuan
  • Yosuke Ota @ota-meshi

You can read about our versioning strategy and releases on our website.

8.12.2 (2024-10-29)

🩹 Fixes

  • eslint-plugin: [switch-exhaustiveness-check] invert considerDefaultExhaustiveForUnions (#10223)

❤️ Thank You

  • Kirk Waiblinger @kirkwaiblinger

You can read about our versioning strategy and releases on our website.

8.12.1 (2024-10-28)

🩹 Fixes

  • rule-tester: use cwd option to set base path for tests with file name (#10201)

❤️ Thank You

  • Dave @reduckted

You can read about our versioning strategy and releases on our website.

8.12.0 (2024-10-28)

🚀 Features

  • eslint-plugin: [prefer-nullish-coalescing] add support for assignment expressions (#10152)
  • eslint-plugin: [consistent-indexed-object-style] report mapped types (#10160)
  • eslint-plugin: [switch-exhaustiveness-check] add allowDefaultCaseMatchUnionMember option (#9954)
  • eslint-plugin: [no-base-to-string] handle String() (#10005)
  • typescript-eslint: improve undefined extension handling (#10177)

🩹 Fixes

  • eslint-plugin: [no-unsafe-return] don't reiterate through all type parts for each part (#10203)
  • website: enable noImplicitAny (#10175)

❤️ Thank You

  • Abraham Guo
  • Kim Sang Du @developer-bandi
  • Kirk Waiblinger @kirkwaiblinger
  • Maxim Stykow @mstykow
  • Terry Fu
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

8.11.0 (2024-10-21)

🚀 Features

  • eslint-plugin: [no-base-to-string] add support for catching toLocaleString (#10138)
  • eslint-plugin: [no-unnecessary-type-parameters] add suggestion fixer (#10149)

🩹 Fixes

  • eslint-plugin: [class-literal-property-style] don't report nodes with override keyword (#10135)
  • rule-tester: allow custom filename outside directory (#10147)

❤️ Thank You

  • Kirk Waiblinger @kirkwaiblinger
  • Lotfi Meklati @lotmek
  • Yukihiro Hasegawa @y-hsgw

You can read about our versioning strategy and releases on our website.

8.10.0 (2024-10-17)

🚀 Features

  • support TypeScript 5.6 (#9972)

🩹 Fixes

  • typescript-eslint: propagate name field to extended configs in config helper (#10094)

❤️ Thank You

  • auvred @auvred
  • Josh Goldberg ✨

You can read about our versioning strategy and releases on our website.

8.9.0 (2024-10-14)

🚀 Features

  • rule-tester: hooks for test cases (#10109)

🩹 Fixes

  • eslint-plugin: [no-unnecessary-type-parameters] cannot assume variables are either type or value (#10093)
  • eslint-plugin: [return-await] sync the behavior with await-thenable (#10069)
  • eslint-plugin: [prefer-literal-enum-member] report a different error message when allowBitwiseExpressions is enabled (#10096)
  • eslint-plugin: [no-loop-func] sync from upstream base rule (#10103)
  • eslint-plugin: [no-unused-vars] never report the naming of an enum member (#10117)
  • eslint-plugin: correct use-at-your-own-risk type definitions (#10049)
  • eslint-plugin: handle unions in await...for (#10110)
  • rule-tester: merge provided linterOptions (#10131)
  • scope-manager: [no-use-before-define] do not treat nested namespace aliases as variable references (#10095)
  • typescript-estree: improve project service error message when file extension missing from extraFileExtensions (#10076)
  • visitor-keys: reorder TSSatisfiesExpression and TSTypeAssertion (#10139)

❤️ Thank You

  • Abraham Guo
  • Anna Bocharova @RobinTail
  • Arya Emami @aryaemami59
  • auvred @auvred
  • Joshua Chen
  • Kirk Waiblinger @kirkwaiblinger
  • Lotfi Meklati @lotmek
  • mdm317
  • Ronen Amiel
  • Sukka
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

8.8.1 (2024-10-07)

🩹 Fixes

  • eslint-plugin: stop warning on @ts-nocheck comments which aren't at the beginning of the file (#10046)
  • typescript-estree: fix crash when running from a node --eval script (#10098)
  • typescript-estree: ensure mjs/mts files are always be parsed as ESM (#10011)

❤️ Thank You

  • Brad Zacher @bradzacher
  • Ronen Amiel
  • WhitePiano @goldentrash

You can read about our versioning strategy and releases on our website.

8.8.0 (2024-09-30)

🚀 Features

  • eslint-plugin: [no-unnecessary-condition] add checkTypePredicates (#10009)
  • eslint-plugin: [return-await] check for-await loop iteree (#10008)

🩹 Fixes

  • remove export type * in d.ts to support TS<5.0 (#10070)
  • eslint-plugin: [no-unnecessary-template-expression] should underline template syntax with squiggly lines (#10044)
  • eslint-plugin: [no-deprecated] max callstack exceeded when class implements itself (#10040)
  • eslint-plugin: [no-misused-promises] check contextual type (#10042)
  • eslint-plugin: [prefer-literal-enum-member] allow nested bitwise operations (#10037)
  • type-utils: check for type parameters on isBuiltinSymbolLikeRecurser() (#10026)
  • utils: update missing type information message (#10043)

❤️ Thank You

  • auvred @auvred
  • Josh Goldberg ✨
  • Kirk Waiblinger @kirkwaiblinger
  • Ronen Amiel
  • Tarun Chauhan @tarunrajput
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

8.7.0 (2024-09-23)

🚀 Features

  • eslint-plugin: [no-unsafe-call] check calls of Function (#10010)
  • eslint-plugin: [consistent-type-exports] check export * exports to see if all exported members are types (#10006)

🩹 Fixes

  • eslint-plugin: properly coerce all types to string in getStaticMemberAccessValue (#10004)
  • eslint-plugin: [no-deprecated] report on imported deprecated variables (#9987)
  • eslint-plugin: [no-confusing-non-null-assertion] check !in and !instanceof (#9994)
  • types: add NewExpression as a parent of SpreadElement (#10024)
  • utils: add missing entries to the RuleListener selectors list (#9992)

❤️ Thank You

  • Abraham Guo
  • auvred @auvred
  • Brian Donovan @eventualbuddha
  • Kirk Waiblinger @kirkwaiblinger

You can read about our versioning strategy and releases on our website.

8.6.0 (2024-09-16)

🚀 Features

  • add allow option for restrict-template-expressions (#8556)
  • eslint-plugin: [no-unnecessary-condition] check switch cases (#9912)
  • eslint-plugin: [no-misused-promises] check array predicate return (#9955)
  • type-utils: isNullableType add Void logic (#9937)
  • typescript-estree: disable plugin loading by default in project service (#9964)

🩹 Fixes

  • eslint-plugin: [no-deprecated] don't report recursive types in destructuring assignment twice (#9969)
  • eslint-plugin: [no-deprecated] report on deprecated variables used in destructuring assignment (#9978)
  • eslint-plugin: [no-deprecated] report on deprecated properties with function-like types (#9977)
  • eslint-plugin: [no-unnecessary-condition] properly reflect multiple negations in message (#9940)
  • typescript-estree: don't throw on missing tsconfig.json by default in project service (#9989)

❤️ Thank You

  • Abraham Guo
  • auvred @auvred
  • Josh Goldberg ✨
  • Kim Sang Du @developer-bandi
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

8.5.0 (2024-09-09)

🚀 Features

  • eslint-plugin: [no-duplicate-type-constituents] prevent unnecessary ([ undefined for optional parameters (#9479)](https://github.com/typescript-eslint/typescript-eslint/commit/ undefined` for optional parameters (#9479)))
  • eslint-plugin: [no-unsafe-argument] differentiate error types (#9920)
  • typescript-estree: default projectService.defaultProject to 'tsconfig.json' (#9893)

🩹 Fixes

  • deps: update dependency prism-react-renderer to v2.4.0 (#9943)
  • eslint-plugin: [no-unnecessary-type-assertion] fix TSNonNullExpression fixer (#9898)
  • eslint-plugin: [no-misused-promises] handle static method (#9951)
  • eslint-plugin: [no-unnecessary-type-parameters] fix AST quick path scope analysis (#9900)
  • eslint-plugin: [consistent-type-assertions] access parser services lazily (#9921)

❤️ Thank You

  • f44da958e
  • Josh Goldberg ✨
  • Kirk Waiblinger @kirkwaiblinger
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

8.4.0 (2024-09-02)

🚀 Features

  • typescript-estree: make withoutProjectParserOptions generic (#9877)

❤️ Thank You

  • Josh Goldberg ✨

You can read about our versioning strategy and releases on our website.

8.3.0 (2024-08-26)

🚀 Features

  • eslint-plugin: [no-deprecated] add rule (#9783)
  • typescript-estree: replace globby w/ fast-glob (#9518)
  • typescript-estree: reload project service once when file config isn't found (#9853)

🩹 Fixes

  • ast-spec: use Expression in argument of ThrowStatement (#9632)
  • eslint-plugin: [no-unnecessary-template-expression] add missing parentheses in autofix (#8673)
  • eslint-plugin: [no-unnecessary-type-parameters] check mapped alias type arguments (#9741)
  • utils: add missing TSSatisfiesExpression in RuleListenerBaseSelectors (#9832)
  • utils: add TSDeclareFunction to functionTypeTypes (#9788)

❤️ Thank You

  • Abraham Guo
  • Daichi Kamiyama @dak2
  • Josh Goldberg ✨
  • Kim Sang Du @developer-bandi
  • Sukka
  • Vida Xie @9romise

You can read about our versioning strategy and releases on our website.

8.2.0 (2024-08-19)

🚀 Features

  • eslint-plugin: add suggestion to require-await to remove async keyword (#9718)
  • typescript-estree: special-case error for parserOptions.project and project references (#9686)

🩹 Fixes

  • eslint-plugin: [use-unknown-in-catch-callback-variable] flag second argument of .then (#9059)
  • eslint-plugin: [no-unnecessary-type-assertion] conflict with TS for variables used before assignment (#9209)
  • eslint-plugin: delete [] in message if ReadOnly<string[]> is detected (#9513)
  • eslint-plugin: [no-redundant-type-constituents] differentiate a types-error any from a true any (#9555)
  • eslint-plugin: [no-unnecessary-type-parameters] check mapped constraint types if necessary (#9740)
  • eslint-plugin: [no-unsafe-enum-comparison] add logic to see through intersections (#9777)
  • typescript-estree: pass in tsconfigRootDir as cwd to getParsedConfigFile (#9804)

❤️ Thank You

  • Abraham Guo
  • Dave @reduckted
  • Jake Bailey @jakebailey
  • James @Zamiell
  • Josh Goldberg ✨
  • liuxingbaoyu @liuxingbaoyu
  • Yukihiro Hasegawa @y-hsgw
  • Yutong Zhu @YutongZhuu

You can read about our versioning strategy and releases on our website.

8.1.0 (2024-08-12)

🚀 Features

  • eslint-plugin: [no-floating-promises] enable "add await" suggestion if ignoreVoid is true (#9703)
  • eslint-plugin: [no-unsafe-return] check promise any (#8693)
  • eslint-plugin: [no-misused-promises] check subtype methods against heritage type methods (#8765)
  • typescript-eslint: add JSDoc comments on generated configs (#9672)
  • typescript-estree: restrict variable declarator definite/init combinations (#9228)

🩹 Fixes

  • eslint-plugin: [no-unsafe-enum-comparison] typo in test (#9779)
  • eslint-plugin: [no-unnecessary-type-parameters] skip checking function bodies for AST references (#9738)
  • eslint-plugin: [member-ordering] get accessor member name & take into account abstract and decorator (#9775)
  • eslint-plugin: [prefer-optional-chain] wrong parenthesis fix output (#9597)
  • eslint-plugin: [no-unnecessary-type-parameters] clarify message (#9737)
  • utils: correct types to align with @types/eslint v9 (#9657)
  • website: tsconfig is blank (#9745)

❤️ Thank You

  • Aly Thobani
  • Brad Zacher @bradzacher
  • James @Zamiell
  • Josh Goldberg ✨
  • Joshua Chen
  • Olivier Zalmanski @OlivierZal
  • YeonJuan @yeonjuan
  • Yukihiro Hasegawa @y-hsgw

You can read about our versioning strategy and releases on our website.

8.0.1 (2024-08-05)

🩹 Fixes

  • eslint-plugin: [no-unused-vars] ignore imports used only as types (#9694)

❤️ Thank You

  • Jake Bailey @jakebailey

You can read about our versioning strategy and releases on our website.

8.0.0 (2024-07-31)

👉 See Announcing typescript-eslint v8 for an upgrade guide and the full list of changes.

⚠️ Breaking Changes

  • typescript-estree: split TSMappedType typeParameter into constraint and key (#7065)
  • parser: always enable comment, loc, range, tokens (#8617)
  • eslint-plugin: [prefer-nullish-coalescing] change ignoreConditionalTests default to true (#8872)
  • typescript-estree: enable dot globs for project by default (#8818)
  • eslint-plugin: deprecate no-loss-of-precision extension rule (#8832)
  • eslint-plugin: remove formatting/layout rules (#8833)
  • typescript-estree: remove slow deprecated and isolated programs (#8834)
  • typescript-estree: add TSEnumBody node for TSEnumDeclaration body (#8920)
  • typescript-estree: rename automaticSingleRunInference to disallowAutomaticSingleRunInference (#8922)
  • ast-spec: remove deprecated type params (#8933)
  • type-utils: remove IsNullableTypeOptions interface (#8934)
  • eslint-plugin: [no-unused-vars] align catch behavior to ESLint 9 (#8971)
  • utils: swap LegacyESLint out for FlatESLint as ESLint export (#8972)
  • eslint-plugin: split no-empty-object-type out from ban-types and no-empty-interfaces (#8977)
  • utils: allow specifying additional rule meta.docs in RuleCreator (#9025)
  • eslint-plugin: apply initial config changes for v8 (#9079)
  • eslint-plugin: replace ban-types with no-restricted-types, no-unsafe-function-type, no-wrapper-object-types (#9102)
  • typescript-estree: remove EXPERIMENTAL_useSourceOfProjectReferenceRedirect (#9104)
  • eslint-plugin: remove no-useless-template-literals (#9207)
  • type-utils: remove getTokenAtPosition (#9444)
  • eslint-plugin: [no-floating-promises] disable checkThenables by default for v8 (#9559)
  • rule-tester: switched to flat config (#9603)

🚀 Features

  • stricter parent types for the AST (#9560)
  • speed up non-type-aware linting with project service (#8322)
  • v8 integration branch (#9165)
  • eslint-plugin: remove deprecated no-throw-literal rule (#9092)
  • eslint-plugin: [no-floating-promises] add 'allowForKnownSafeCalls' option (#9234)
  • eslint-plugin: [no-unused-vars] add reportUnusedIgnorePattern option (#9324)
  • eslint-plugin: [no-unused-vars] support ignoreClassWithStaticInitBlock (#9325)
  • eslint-plugin: [no-unused-vars] handle comma operator for assignments, treat for-of the same as for-in (#9326)
  • eslint-plugin: [no-unused-vars] report if var used only in typeof (#9330)
  • eslint-plugin: [return-await] add return-await to strict-type-checked preset (#9604)
  • eslint-plugin: [no-unnecessary-type-parameters] promote to strict (#9662)
  • rule-tester: support multipass fixes (#8883)
  • type-utils: support intersection types in TypeOrValueSpecifier (#9633)
  • typescript-estree: stabilize EXPERIMENTAL_useProjectService as projectService (#9084)
  • typescript-estree: also remove projectService in withoutProjectParserOptions (#9287)
  • typescript-estree: exposes ProjectService logs through the plugin (#9337)
  • utils: add Linter configType constructor option (#8999)
  • utils: remove deprecated context helpers (#9000)

🩹 Fixes

  • correct eslint-plugin's peerDependency on parser@8 (#9089)
  • bring back in allowdefaultprojectforfiles rename (7dfceeeea)
  • disable projectService in disabled-type-checked shared config (#9460)
  • eslint-plugin: include alpha pre-releases in parser peer dependency (#9099)
  • eslint-plugin: correct rules.d.ts types to not rely on non-existent imports (#9339)
  • eslint-plugin: remove duplicate import RuleModuleWithMetaDocs (#9465)
  • eslint-plugin: [no-unnecessary-template-expression] do not render escaped strings in autofixes (#8688)
  • eslint-plugin: [no-unused-vars] incorporate upstream changes around caught errors report messages (#9532)
  • eslint-plugin: [no-misused-promises] perf: avoid getting types of variables/functions if the annotated type is obviously not a function (#9656)
  • rule-tester: set configType to eslintrc in Linter options (#9178)
  • rule-tester: re-apply updates from main (#9180)
  • rule-tester: provide Linter a cwd in its constructor (#9678)
  • type-utils: also check declared modules for package names in TypeOrValueSpecifier (#9500)
  • types: allow ProjectServiceOptions for projectService (#9318)
  • typescript-estree: pass extraFileExtensions to projectService (#9051)
  • typescript-estree: only run projectService setHostConfiguration when needed (#9336)
  • typescript-estree: specific error for parserOptions.project not including a file (#9584)
  • typescript-estree: adds support for project services using extended config files (#9306)
  • typescript-estree: factor tsconfigRootDir into allowDefaultProject (#9675)

❤️ Thank You

  • Abraham Guo
  • Alfred Ringstad @alfredringstad
  • auvred @auvred
  • Brad Zacher @bradzacher
  • Christopher Aubut @higherorderfunctor
  • Collin Bachman @bachmacintosh
  • James Henry @JamesHenry
  • Josh Goldberg
  • Josh Goldberg ✨
  • Kirk Waiblinger @kirkwaiblinger
  • StyleShit @StyleShit
  • Victor Lin @yepitschunked
  • Yukihiro Hasegawa @y-hsgw

You can read about our versioning strategy and releases on our website.

7.18.0 (2024-07-29)

🚀 Features

  • types: update ECMA versions (#9634)

🩹 Fixes

  • eslint-plugin: [no-unnecessary-type-assertion] prevent runtime error when asserting a variable declared in default TS lib (#9660)
  • eslint-plugin: [unbound-method] report on destructuring in function parameters (#8952)
  • eslint-plugin: [no-duplicate-type-constituents] shouldn't report on error types (#9600)
  • eslint-plugin: [strict-boolean-expressions] support branded booleans (#9297)

❤️ Thank You

  • auvred @auvred
  • Oliver Salzburg
  • Vinccool96
  • Yukihiro Hasegawa @y-hsgw

You can read about our versioning strategy and releases on our website.

7.17.0 (2024-07-22)

🚀 Features

  • eslint-plugin: backport no-unsafe-function type, no-wrapper-object-types from v8 to v7 (#9507)
  • eslint-plugin: [return-await] add option to report in error-handling scenarios only, and deprecate "never" (#9364)

🩹 Fixes

  • eslint-plugin: [no-floating-promises] check top-level type assertions (and more) (#9043)
  • eslint-plugin: [strict-boolean-expressions] consider assertion function argument a boolean context (#9074)
  • eslint-plugin: [no-unnecessary-condition] false positive on optional private field (#9602)
  • typescript-estree: don't infer single-run when --fix is in proces.argv (#9577)
  • typescript-estree: disable single-run inference with extraFileExtensions (#9580)
  • website: expose ATA types to eslint instance (#9598)

❤️ Thank You

  • Armano @armano2
  • Josh Goldberg ✨
  • Kirk Waiblinger @kirkwaiblinger
  • StyleShit @StyleShit

You can read about our versioning strategy and releases on our website.

7.16.1 (2024-07-15)

🩹 Fixes

  • eslint-plugin: [no-unnecessary-type-parameters] descend into all parts of mapped types in no-unnecessary-type-parameters (#9530)

❤️ Thank You

  • Dan Vanderkam @danvk

You can read about our versioning strategy and releases on our website.

7.16.0 (2024-07-08)

🚀 Features

  • ast-spec: add parent property to AccessorProperty node types (#9487)
  • eslint-plugin: [no-unnecessary-parameter-property-assignment] add new rule (#8903)
  • eslint-plugin: add support for nested namespaces to unsafe-member-access (#9478)
  • eslint-plugin: [no-floating-promises] add checkThenables option (#9263)
  • rule-tester: stricter rule test validations (#9086)

🩹 Fixes

  • deps: update dependency @eslint-community/regexpp to v4.11.0 (#9497)
  • eslint-plugin: [no-floating-promises] add suggestions to tests from #9263 checkThenables (#9515, #9263)
  • eslint-plugin: [restrict-template-expressions] don't report tuples if allowArray option is enabled (#9492)
  • utils: context.parserPath may be undefined (#9486)
  • website: react key error on internal pages of website (#9506)

❤️ Thank You

  • Abraham Guo
  • auvred @auvred
  • Josh Goldberg ✨
  • Juan Sanchez @JSanchezIO
  • Vinccool96
  • YeonJuan @yeonjuan
  • Yukihiro Hasegawa @y-hsgw

You can read about our versioning strategy and releases on our website.

7.15.0 (2024-07-01)

🚀 Features

  • eslint-plugin: [array-type] detect Readonly<string[]> case (#8752)
  • eslint-plugin: back-port new rules around empty object types from v8 (#9443)

🩹 Fixes

  • disable EXPERIMENTAL_useProjectService in disabled-type-checked shared config (#9459)
  • eslint-plugin: [no-unsafe-return] differentiate a types-error any from a true any (#9254)
  • eslint-plugin: [no-unsafe-call] differentiate a types-error any from a true any (#9304)
  • utils: clean outdated RuleTester export (#9322)

❤️ Thank You

  • auvred @auvred
  • Kim Sang Du @developer-bandi
  • rgehbt @Gehbt
  • Vinccool96

You can read about our versioning strategy and releases on our website.

7.14.1 (2024-06-24)

🩹 Fixes

  • eslint-plugin: [prefer-nullish-coalescing] treat enums and literals as their underlying primitive types (#9376)
  • eslint-plugin: [prefer-nullish-coalescing] ensure ternary fix does not remove parens (#9380)

❤️ Thank You

  • Jake Bailey @jakebailey

You can read about our versioning strategy and releases on our website.

7.14.0 (2024-06-24)

🚀 Features

  • support TypeScript 5.5 (#9397)
  • ast-spec: tighter types and documentation for declaration/* (#9211)

🩹 Fixes

  • keep warnAbountTSVersion in sync with package.json (#9400)
  • eslint-plugin: [no-extraneous-class] handle abstract members (#9367)
  • eslint-plugin: [prefer-nullish-coalescing] handle intersected primitive types (#9378)
  • eslint-plugin: [no-invalid-this] support AccessorProperty (#9411)

❤️ Thank You

  • Brad Zacher @bradzacher
  • cm-ayf @cm-ayf
  • Jake Bailey @jakebailey
  • James Zhan
  • Joshua Chen
  • yoshi2no @yoshi2no

You can read about our versioning strategy and releases on our website.

7.13.1 (2024-06-17)

🩹 Fixes

  • eslint-plugin: [prefer-readonly] refine report locations (#8894)
  • eslint-plugin: [return-await] support explicit resource management (#9044)
  • eslint-plugin: [no-unsafe-member-access] differentiate a types-error any from a true any (#9291)

❤️ Thank You

  • Kirk Waiblinger
  • Yukihiro Hasegawa @y-hsgw

You can read about our versioning strategy and releases on our website.

7.13.0 (2024-06-10)

🚀 Features

  • eslint-plugin: [no-dynamic-delete] allow all string literals as index (#9280)
  • parser, typescript-estree: export withoutProjectParserOptions utility (#9233)
  • typescript-estree: require import = require() argument to be a string literal (#9226)
  • typescript-estree: forbid .body, .async, .generator on declare function (#9225)

🩹 Fixes

  • ast-spec: function-call-like callee should be Expression not LeftHandSideExpression (#9231)
  • eslint-plugin: [init-declarations] refine report locations (#8893)
  • eslint-plugin: [no-base-to-string] make error message more nuanced (#9281)
  • eslint-plugin: [no-unsafe-assignment] be more specific about error types (#8304)
  • eslint-plugin: [no-magic-numbers] fix implementation of the ignore option (#9167)
  • scope-manager: handle index signature in class (#9054)

❤️ Thank You

  • Fotis Papadogeorgopoulos
  • Joshua Chen
  • Kirk Waiblinger
  • Tobiloba Adedeji @tobySolutions
  • Vinccool96
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

7.12.0 (2024-06-03)

🚀 Features

  • eslint-plugin: [no-useless-template-literals] rename to no-useless-template-expression (deprecate no-useless-template-literals) (#8821)
  • eslint-plugin: [no-floating-promises] add option 'allowForKnownSafePromises' (#9186)
  • rule-tester: check for parsing errors in suggestion fixes (#9052)
  • rule-tester: port checkDuplicateTestCases from ESLint (#9026)

🩹 Fixes

  • no-useless-template-expression -> no-unnecessary-template-expression (#9174)
  • eslint-plugin: [no-unnecessary-type-assertion] combine template literal check with const variable check (#8820)
  • eslint-plugin: [dot-notation] fix false positive when accessing private/protected property with optional chaining (#8851)
  • eslint-plugin: [explicit-member-accessibility] refine report locations (#8869)
  • eslint-plugin: [no-unnecessary-type-assertion] declares are always defined, so always check declares (#8901)
  • eslint-plugin: [prefer-literal-enum-member] allow using member it self on allowBitwiseExpressions (#9114)
  • eslint-plugin: [return-await] clean up in-try-catch detection and make autofixes safe (#9031)
  • eslint-plugin: [member-ordering] also TSMethodSignature can be get/set (#9193)
  • types: correct typing ParserOptions (#9202)

❤️ Thank You

  • Abraham Guo
  • Han Yeong-woo @nix6839
  • Joshua Chen
  • Kim Sang Du @developer-bandi
  • Kirk Waiblinger
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

7.11.0 (2024-05-27)

🚀 Features

  • eslint-plugin: deprecate prefer-ts-expect-error in favor of ban-ts-comment (#9081)

🩹 Fixes

  • ast-spec: add EmptyStatement to Statement (#8892)
  • eslint-plugin: [consistent-type-assertions] prevent syntax errors on arrow functions (#8826)
  • typescript-estree: truncate number of files printed by the maximum file error (#9127)

❤️ Thank You

  • Abraham Guo
  • auvred @auvred
  • Dom Armstrong @domarmstrong
  • Kirk Waiblinger

You can read about our versioning strategy and releases on our website.

7.10.0 (2024-05-20)

🚀 Features

  • eslint-plugin: [sort-type-constituents] support case sensitive sorting (#8760)

🩹 Fixes

  • eslint-plugin: [prefer-regexp-exec] fix heuristic to check whether regex may contain global flag (#8764)
  • typescript-estree: don't add in-project files to defaultProjectMatchedFiles (#9097)
  • utils: remove function form type from flat config files and ignores (#9111)

❤️ Thank You

  • auvred @auvred
  • Emanuel Hoogeveen @ehoogeveen-medweb
  • jsfm01 @jsfm01
  • Kirk Waiblinger

You can read about our versioning strategy and releases on our website.

7.9.0 (2024-05-13)

🚀 Features

  • rule-tester: check for missing placeholder data in the message (#9039)

🩹 Fixes

  • do not pass tsconfig canonical file name to typescript API to get program details for config file (#9042)
  • eslint-plugin: [explicit-function-return-types] fix false positive on default parameters (#9045)

❤️ Thank You

  • Kirk Waiblinger
  • Sheetal Nandi
  • Vinccool96

You can read about our versioning strategy and releases on our website.

7.8.0 (2024-04-29)

🚀 Features

  • rule-tester: assert suggestion messages are unique (#8995)
  • typescript-estree: add maximumDefaultProjectFileMatchCount and wide allowDefaultProjectForFiles glob restrictions (#8925)

🩹 Fixes

  • eslint-plugin: [no-unsafe-argument] handle tagged templates (#8746)
  • eslint-plugin: [prefer-optional-chain] suggests optional chaining during strict null equality check (#8717)
  • eslint-plugin: [consistent-type-assertions] handle tagged templates (#8993)
  • eslint-plugin: [no-unsafe-return] handle union types (#9001)
  • eslint-plugin: [no-unused-vars] clear error report range (#8640)
  • utils: export ESLint backwards-compat functions (#8976)

❤️ Thank You

  • auvred @auvred
  • Josh Goldberg ✨
  • jsfm01 @jsfm01
  • Kim Sang Du @developer-bandi
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

7.7.1 (2024-04-22)

🩹 Fixes

  • eslint-plugin: [no-unsafe-assignment] handle shorthand property assignment (#8800)
  • eslint-plugin: [explicit-function-return-type] fix checking wrong ancestor's return type (#8809)
  • eslint-plugin: [prefer-optional-chain] only look at left operand for requireNullish (#8559)
  • eslint-plugin: [no-for-in-array] refine report location (#8874)
  • eslint-plugin: [no-unnecessary-type-assertion] allow non-null assertion for void type (#8912)

❤️ Thank You

  • Abraham Guo
  • Kirk Waiblinger @kirkwaiblinger
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

7.7.0 (2024-04-15)

🚀 Features

  • eslint-plugin: replace no-new-symbol with no-new-native-nonconstructor (#8895)
  • typescript-estree: add defaultProject for project service (#8815)

❤️ Thank You

  • Dave @reduckted
  • Josh Goldberg ✨

You can read about our versioning strategy and releases on our website.

7.6.0 (2024-04-08)

🚀 Features

  • add name field to shared configs and flat config types (#8863)
  • bump npm dependency ranges (#8860)
  • utils: add types for both flat and legacy eslint classes (#8861)

🩹 Fixes

  • typescript-eslint: fix type errors when using exactOptionalPropertyTypes (#8786)

❤️ Thank You

  • Abraham Guo
  • auvred @auvred
  • Brad Zacher @bradzacher

You can read about our versioning strategy and releases on our website.

7.5.0 (2024-04-01)

🚀 Features

  • website: playground Visual Editor search makes case-insensitive (#8767)

🩹 Fixes

  • eslint-plugin: [no-floating-promises] handle TaggedTemplateExpression (#8758)
  • eslint-plugin: [no-unnecessary-type-assertion] handle exactOptionalPropertyTypes compiler option (#8770)
  • parser: disallow errorOnTypeScriptSyntacticAndSemanticIssues (#8784)
  • typescript-eslint: improve support for legacy configs (#8812)

❤️ Thank You

  • Brad Zacher @bradzacher
  • Kim Sang Du @developer-bandi
  • Mark de Dios @peanutenthusiast
  • Naru
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

7.4.0 (2024-03-25)

🚀 Features

  • eslint-plugin: [consistent-type-imports] ignore files with decorators, experimentalDecorators, and emitDecoratorMetadata (#8335)
  • eslint-plugin: [no-unnecessary-type-arguments] handle tagged templates (#8708)
  • eslint-plugin: deprecate no-throw-literal and add a renamed only-throw-error (#8701)

🩹 Fixes

  • eslint-plugin: [prefer-optional-chain] address multipart nullish checks false positive (#8678)
  • eslint-plugin: [prefer-optional-chain] properly disambiguate between boolean and false (#8685)
  • eslint-plugin: [no-unnecessary-type-assertion] avoid remove const casting on template literals with expressions inside (#8740)
  • typescript-eslint: declare peer dependency on utils to ensure npm correctly installs dependencies (#8738)
  • website: visual Editor is not scrolled (#8709)
  • website: make 404 page good again (#8750)

❤️ Thank You

  • Abraham Guo
  • Brad Zacher @bradzacher
  • Josh Goldberg ✨
  • Kim Sang Du @developer-bandi
  • Kirk Waiblinger @kirkwaiblinger
  • Marco Pasqualetti @marcalexiei
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

7.3.1 (2024-03-18)

🩹 Fixes

  • eslint-plugin: [no-floating-promises] revert disable of ignoreVoid in strict config (#8718)

❤️ Thank You

  • Josh Goldberg ✨

You can read about our versioning strategy and releases on our website.

7.3.0 (2024-03-18)

🚀 Features

  • eslint-plugin: [restrict-template-expressions] add allowArray option (#8389)
  • eslint-plugin: add meta.docs.recommended setting for strict config options (#8364)
  • eslint-plugin: add rule use-unknown-in-catch-callback-variables (#8383)
  • eslint-plugin: [prefer-reduce-type-parameter] supports tuple, union, intersection (#8642)
  • eslint-plugin-internal: add internal lint rule no-relative-paths-to-internal-packages (#8596)
  • typescript-estree: disallow switch statements with multiple default cases (#8411)
  • utils: add parser name to thrown parser error message (#8484)

🩹 Fixes

  • correct engines.node constraints in package.json (#8671)
  • eslint-plugin: [unbound-method] check method definition in object literal using longhand form (#8637)
  • eslint-plugin: [consistent-type-imports] handle imports without specifiers (#8308)
  • eslint-plugin: [no-redundant-type-constituents] incorrectly marks & string as redundant (#8282)
  • eslint-plugin: [no-unnecessary-qualifier] handle merge namespace with enum (#8591)
  • eslint-plugin: [no-unused-expressions] false negatives when using assertions (#8668)
  • eslint-plugin: [ban-ts-comment] more accurate handling of multiline comments (#8416)
  • eslint-plugin: [explicit-function-return-type, explicit-module-boundary-types] improved checking for allowHigherOrderFunctions option (#8508)
  • eslint-plugin: [class-literal-property-style] ignore property assigned in constructor (#8412)
  • eslint-plugin: [no-unnecessary-type-assertion] fix false negative for const variable declarations (#8558)
  • typescript-estree: fix the issue of single run inferring in the pnpm repo (#3811, #8702)

❤️ Thank You

  • Abraham Guo
  • Alexu
  • Arka Pratim Chaudhuri @arka1002
  • auvred @auvred
  • Derrick Isaacson
  • fnx @DMartens
  • Josh Goldberg ✨
  • Kirk Waiblinger @kirkwaiblinger
  • Marta Cardoso @up201304504
  • Michaël De Boey
  • Tristan Rasmussen
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

7.2.0 (2024-03-11)

🚀 Features

  • support TS 5.4 (#8630)
  • eslint-plugin: [prefer-string-starts-ends-with] add allowSingleElementEquality option (#8374)

🩹 Fixes

  • eslint-plugin: expose *-type-checked-only configs for extension (#8600)
  • eslint-plugin: [member-ordering] report alphabetical sorting for all groups instead of just the first failing group (#8263)
  • eslint-plugin: [no-var-requires, no-require-imports] support template literal (#8408)
  • eslint-plugin: [no-useless-template-literals] detect TemplateLiteral (#8575)
  • eslint-plugin: [no-unnecessary-condition] handle union array and tuple type (#8592)
  • eslint-plugin: [prefer-find] support ternary branches in prefer-find (#8421)
  • typescript-eslint: set sourceType: "module" in base shared config (#8622)
  • typescript-eslint: export ConfigWithExtends type (#8621)

❤️ Thank You

  • Arka Pratim Chaudhuri @arka1002
  • auvred @auvred
  • Chris Plummer
  • Fotis Papadogeorgopoulos @fpapado
  • Josh Goldberg ✨
  • Kirk Waiblinger @kirkwaiblinger
  • Wayne Zhang
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

7.1.1 (2024-03-04)

🩹 Fixes

  • typescript-eslint: apply ignores to all extended configs passed to config helper function (#8567)

❤️ Thank You

  • auvred @auvred

You can read about our versioning strategy and releases on our website.

7.1.0 (2024-02-26)

🚀 Features

  • eslint-plugin: add *-type-checked-only configs (#8367)
  • eslint-plugin: [naming-convention] support the auto-accessor syntax (#8084)
  • eslint-plugin: [consistent-return] add new rule (#8289)
  • typescript-estree: add debug logs for useProgramFromProjectService (#8426)

🩹 Fixes

  • eslint-plugin: [prefer-optional-chan] allow typeof for avoiding reference error (#8472)
  • eslint-plugin: [no-misused-promises] improve check union types (#8534)
  • eslint-plugin: [no-use-before-define] fix false positive type reference in as, satisfies (#8474)
  • typescript-estree: use simpler absolutify behavior for project service client file paths (#8520)

❤️ Thank You

  • Arka Pratim Chaudhuri @arka1002
  • Josh Goldberg ✨
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

7.0.2 (2024-02-19)

🩹 Fixes

  • fix tsconfig-less check errors, fix @types/eslint incompatibilities, add tests (#8460)
  • utils: use mergeable interface for settings property (#8485)

❤️ Thank You

  • Brad Zacher @bradzacher
  • Gareth Jones @G-Rath

You can read about our versioning strategy and releases on our website.

7.0.1 (2024-02-12)

🩹 Fixes

  • eslint-plugin: update peer dep for parser (#8441)

❤️ Thank You

  • Tim Dorr @timdorr

You can read about our versioning strategy and releases on our website.

7.0.0 (2024-02-12)

👉 See Announcing typescript-eslint v7 for an upgrade guide and the full list of changes.

🚀 Features

  • ⚠️ bump ESLint, NodeJS, and TS minimum version requirements (#8377)
  • add support for flat configs (#7935)
  • utils: revert removal of backwards-compat functions (#8399)
  • website: add ESQuery filter to URL state (#8297)

🩹 Fixes

  • eslint-plugin: [prefer-find] stop throwing type errors when converting symbols to numbers (#8390)
  • website: [playground] trigger lint when eslintrc and tsconfig changed (#8391)

⚠️ Breaking Changes

  • ⚠️ bump ESLint, NodeJS, and TS minimum version requirements (#8377)

❤️ Thank You

  • Brad Zacher @bradzacher
  • Kirk Waiblinger @kirkwaiblinger
  • StyleShit @StyleShit
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

6.21.0 (2024-02-05)

🚀 Features

  • export plugin metadata (#8331)
  • allow parserOptions.project: false (#8339)
  • eslint-plugin: add rule prefer-find (#8216)
  • typescript-estree: forbid duplicated accessibility modifiers (#8257)
  • utils: improve eslint types (#8344)

🩹 Fixes

  • ast-spec: add JSXElement type to the JSXAttribute['value'] (#8285)
  • eslint-plugin: [no-unused-vars] don't report on types referenced in export assignment expression (#8265)
  • eslint-plugin: [switch-exhaustiveness-check] better support for intersections, infinite types, non-union values (#8250)
  • eslint-plugin: [consistent-type-imports] dont report on types used in export assignment expressions (#8332)
  • eslint-plugin: [no-unnecessary-condition] handle left-hand optional with exactOptionalPropertyTypes option (#8249)
  • eslint-plugin: [class-literal-property-style] allow getter when same key setter exists (#8277)
  • eslint-plugin: [no-unnecessary-type-assertion] provide valid fixes for assertions with extra tokens before as keyword (#8326)
  • rule-tester: fix a phantom dependency on the "semver" package (#8260)

❤️ Thank You

  • auvred @auvred
  • Brad Zacher @bradzacher
  • Kirk Waiblinger @kirkwaiblinger
  • Pete Gonzalez @octogonz
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

6.20.0 (2024-01-29)

🚀 Features

  • eslint-plugin: [member-ordering] allow easy reuse of the default ordering (#8248)

🩹 Fixes

  • eslint-plugin: [no-useless-template-literals] incorrect bigint autofix result (#8283)
  • eslint-plugin: [prefer-nullish-coalescing] treat any/unknown as non-nullable (#8262)
  • eslint-plugin: [no-useless-template-literals] report Infinity & NaN (#8295)
  • eslint-plugin: [prefer-readonly] disable checking accessors (#8300)

❤️ Thank You

  • Alex Parloti @parloti
  • auvred @auvred
  • James Browning
  • StyleShit @StyleShit
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

6.19.1 (2024-01-22)

🩹 Fixes

  • eslint-plugin: [no-unnecessary-condition] fix false positive for type variable (#8235)
  • type-utils: preventing isUnsafeAssignment infinite recursive calls (#8237)

❤️ Thank You

  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

6.19.0 (2024-01-15)

🚀 Features

  • eslint-plugin: [prefer-promise-reject-errors] add rule (#8011)
  • eslint-plugin: [no-array-delete] add new rule (#8067)
  • eslint-plugin: [no-useless-template-literals] add fix suggestions (#8065)

🩹 Fixes

  • eslint-plugin: [no-unnecessary-type-assertion] detect unnecessary non-null-assertion on a call expression (#8143)
  • eslint-plugin: [no-unnecesary-type-assertion] treat unknown/any as nullable (#8089)
  • typescript-estree: add JSDocParsingMode enum merge for typescript/lib/tsserverlibrary (#8193)
  • typescript-estree: disallow using as the variable keyword for for..in loops (#7649)
  • typescript-estree: fix incorrect backwards-compat augmentation in TS 5.3 (#8181)

❤️ Thank You

  • auvred @auvred
  • Brad Zacher @bradzacher
  • Josh Goldberg ✨
  • Joshua Chen
  • LJX @lvjiaxuan
  • Steven @Solo-steven
  • StyleShit @StyleShit

You can read about our versioning strategy and releases on our website.

6.18.1 (2024-01-08)

🩹 Fixes

  • eslint-plugin: [no-non-null-assertion] provide valid fix when member access is on next line (#8185)
  • eslint-plugin: [no-unnecessary-condition] improve checking optional callee (#8178)
  • eslint-plugin: [prefer-readonly] support modifiers of unions and intersections (#8169)
  • eslint-plugin: [switch-exhaustiveness-check] fix new allowDefaultCaseForExhaustiveSwitch option (#8176)
  • typescript-estree: fix invalid parsing error when use update expression on non-null assertion (#8202)
  • typescript-estree: only create project service from env setting if project is enabled (#8136)
  • utils: improve error message on typed rule with invalid parser (#8146)

❤️ Thank You

  • auvred @auvred
  • James @Zamiell
  • Josh Goldberg ✨
  • YeonJuan @yeonjuan

You can read about our versioning strategy and releases on our website.

6.18.0 (2024-01-06)

🚀 Features

  • eslint-plugin: [no-var-requires, no-require-imports] allow option (#7710)
  • typescript-estree: throw on invalid update expressions (#7202)
  • typescript-estree: throw error when CatchClause param contains initializer (#8183)

❤️ Thank You

  • auvred @auvred
  • Joshua Chen

You can read about our versioning strategy and releases on our website.

6.17.0 (2024-01-01)

Bug Fixes

  • eslint-plugin: [no-restricted-imports] prevent crash when patterns or paths in options are empty (#8108) (675e987)

Features

  • eslint-plugin: [no-floating-promises] flag result of .map(async) (#7897) (5857356)
  • eslint-plugin: [switch-exhaustiveness-check] add an option to warn against a default case on an already exhaustive switch (#7539) (6a219bd)

You can read about our versioning strategy and releases on our website.

6.16.0 (2023-12-25)

Bug Fixes

  • eslint-plugin: [unbound-method] exempt all non-Promise built-in statics (#8096) (3182959)

Features

  • eslint-plugin: deprecate formatting (meta.type: layout) rules (#8073) (04dea84)
  • eslint-plugin: deprecate no-extra-semi in favor of ESLint Stylistic equivalent (#8123) (9368bf3)
  • typescript-estree: add allowDefaultProjectForFiles project service allowlist option (#7752) (7ddadda)

You can read about our versioning strategy and releases on our website.

6.15.0 (2023-12-18)

Features

  • eslint-plugin: [no-useless-template-literals] add new rule (#7957) (ff75785), closes #2846
  • require-array-sort-compare + toSorted (#8052) (c9661c8)

You can read about our versioning strategy and releases on our website.

6.14.0 (2023-12-11)

Bug Fixes

  • eslint-plugin: add no-unsafe-unary-minus, prefer-destructuring to disable-type-checked (#8038) (431cd15)
  • eslint-plugin: correct message for no-unsafe-unary-minus (#7998) (705370a)

Features

  • eslint-plugin: [explicit-function-return-type] add support for typed class property definitions (#8027) (bff47d7)
  • eslint-plugin: [require-await] allow yielding Promise in async generators (#8003) (4c3e704)

You can read about our versioning strategy and releases on our website.

6.13.2 (2023-12-04)

Note: Version bump only for package @typescript-eslint/typescript-eslint

You can read about our versioning strategy and releases on our website.

6.13.1 (2023-11-28)

Bug Fixes

  • default to parse all JSDoc and provide options to configure it (#7999) (779e13e)

You can read about our versioning strategy and releases on our website.

6.13.0 (2023-11-27)

Bug Fixes

  • typescript-estree: ensure backwards compat with pre-5.3 import attributes (#7967) (810fc8c)

Features

You can read about our versioning strategy and releases on our website.

6.12.0 (2023-11-20)

Bug Fixes

  • eslint-plugin: [class-methods-use-this] detect a problematic case for private/protected members if ignoreClassesThatImplementAnInterface is set (#7705) (155aa1f)
  • eslint-plugin: [no-unnecessary-condition] fix false positive with computed member access and branded key type (#7706) (f151b26)
  • eslint-plugin: [switch-exhaustiveness-check] enum members with new line or single quotes are not being fixed correctly (#7806) (a034d0a), closes #7768
  • utils: add missing fields to flat config types (#7933) (533861a)
  • utils: allow string processor in flat config (024ed9e)

Features

  • [member-ordering] add accessor support for member-ordering (#7927) (3c8312d)
  • eslint-plugin: [switch-exhaustiveness-check] add requireDefaultForNonUnion option (#7880) (4cfcd45)
  • update TypeScript to 5.3-rc (#7923) (9034d17)

You can read about our versioning strategy and releases on our website.

6.11.0 (2023-11-13)

Bug Fixes

  • eslint-plugin: [explicit-function-return-type] support JSX attributes in allowTypedFunctionExpressions (#7553) (be2777c)
  • eslint-plugin: [no-unnecessary-qualifier] handle nested namespace id (#7883) (a668f5b)

Features

  • add no-unsafe-unary-minus rule (#7390) (c4709c2)
  • add types for flat config files (#7273) (66cd0c0)
  • allow typescript@5.3.0-RC as devDependency (#7821) (b6c40b4)
  • eslint-plugin: no-unsafe-enum-comparison handles switch cases (#7898) (72cb9e4)
  • typescript-estree: skip isTTY version check if user passes loggerFn on unsupported TypeScript version warning (#7739) (9656e13)
  • utils: add ESLint CodePath selector types (#7551) (99a026f)
  • utils: update types to reflect RuleContext and SourceCode changes and deprecations (#7812) (b73d8b2)

You can read about our versioning strategy and releases on our website.

6.10.0 (2023-11-06)

Bug Fixes

  • eslint-plugin: [no-unused-vars] handle logical assignment (#7854) (11e57c5)
  • eslint-plugin: [require-await] add support for "await using" (#7866) (855abea)

Features

  • eslint-plugin: [ban-ts-comments] suggest ts-expect-error over ts-ignore (#7849) (5e73a48)

You can read about our versioning strategy and releases on our website.

6.9.1 (2023-10-30)

Bug Fixes

  • eslint-plugin: [naming-convention] allow PascalCase for imports (#7841) (7ad86ee)
  • eslint-plugin: [no-unused-expressions] handle TSInstantiationExpression expression (#7831) (31988e0)

You can read about our versioning strategy and releases on our website.

6.9.0 (2023-10-23)

Bug Fixes

  • eslint-plugin: [no-confusing-void-expression] handle unfixable cases (#7674) (7e52f27)
  • eslint-plugin: [no-unsafe-return] allow returning anything if explicitly returning any (#7708) (c6124b2)
  • rule-tester: fix parser fallback logic (#7754) (34c23e0)
  • type-utils: treat custom type roots as external (#6870) (b85f744)

Features

  • eslint-plugin: [max-params] don't count this: void parameter (#7696) (6398d3f), closes #7538
  • eslint-plugin: [naming-convention] add support for default and namespace imports (#7269) (bb15aae)
  • eslint-plugin: [no-restricted-imports] support import = require (#7709) (4c8edcf)
  • eslint-plugin: [no-unsafe-enum-comparison] add switch suggestion (#7691) (53d5263), closes #7643
  • eslint-plugin: [prefer-readonly] private fields support (#7686) (0e875bf)

You can read about our versioning strategy and releases on our website.

6.8.0 (2023-10-16)

Bug Fixes

  • eslint-plugin: [consistent-type-imports] import assertion checks added (#7722) (afdae37)
  • eslint-plugin: [no-shadow] fix static class generics for class expressions (#7724) (e5ea1d0)
  • eslint-plugin: [no-unsafe-member-access] report on only the accessed property (#7717) (f81a2da)
  • eslint-plugin: [no-useless-empty-export] exempt .d.ts (#7718) (ac397f1)

Features

  • eslint-plugin: add new extended rule prefer-destructuring (#7117) (3c6379b)

You can read about our versioning strategy and releases on our website.

6.7.5 (2023-10-09)

Bug Fixes

  • eslint-plugin: [prefer-string-starts-ends-with] only report slice/substring with correct range (#7712) (db40a0a)

You can read about our versioning strategy and releases on our website.

6.7.4 (2023-10-02)

Note: Version bump only for package @typescript-eslint/typescript-eslint

You can read about our versioning strategy and releases on our website.

6.7.3 (2023-09-25)

Bug Fixes

You can read about our versioning strategy and releases on our website.

6.7.2 (2023-09-18)

Note: Version bump only for package @typescript-eslint/typescript-eslint

You can read about our versioning strategy and releases on our website.

6.7.1 (2023-09-18)

Note: Version bump only for package @typescript-eslint/typescript-eslint

You can read about our versioning strategy and releases on our website.

6.7.0 (2023-09-11)

Bug Fixes

  • eslint-plugin: [no-restricted-imports] disallow side effect imports when allowTypeImports is enabled (#7560) (4908905)

Features

  • eslint-plugin: [await-thenable] added suggestion fixer (#7437) (b284370)

You can read about our versioning strategy and releases on our website.

6.6.0 (2023-09-04)

Bug Fixes

  • eslint-plugin: [key-spacing] consider properties with parens and comments (#7525) (7012279)

Features

  • rule-tester: allow to create empty tests (#7467) (654b35d)

You can read about our versioning strategy and releases on our website.

6.5.0 (2023-08-28)

Bug Fixes

  • eslint-plugin: [consistent-type-assertions] wrap object return value with parentheses (#6885) (23ac499)

Features

  • bump supported TS version to 5.2 (#7535) (f18c88d)
  • support Explicit Resource Management syntax for TS 5.2 (#7479) (c11e05c)

You can read about our versioning strategy and releases on our website.

6.4.1 (2023-08-21)

Bug Fixes

  • eslint-plugin: [no-unnecessary-condition] false positives with branded types (#7466) (b52658f), closes #7293
  • utils: [ts-eslint] small type fixes (#7474) (4402db1)

You can read about our versioning strategy and releases on our website.

6.4.0 (2023-08-14)

Bug Fixes

Features

You can read about our versioning strategy and releases on our website.

6.3.0 (2023-08-07)

Bug Fixes

  • eslint-plugin: [no-extra-parens] keep parens around call expression arguments when type arguments contain parens (#7375) (38e5e4e)
  • eslint-plugin: [no-restricted-imports] allow inline type qualifiers when allowTypeImports enabled (#7379) (cc9a46d)

Features

  • eslint-plugin: [prefer-nullish-coalescing] allow ignorePrimitives option to be true (#7331) (dfcafae)

Reverts

  • Revert "chore(deps): update dependency marked to v6" (#7429) (7891a06), closes #7429 #7422

You can read about our versioning strategy and releases on our website.

6.2.1 (2023-07-31)

Bug Fixes

  • eslint-plugin: [no-inferrable-types] apply also for parameter properties (#7288) (67f93b1)
  • scope-manager: correct decorators(.length) check in ClassVisitor for methods (#7334) (abbb6c2)
  • yarn version not specified in monorepo (#7371) (18f8d74)

You can read about our versioning strategy and releases on our website.

6.2.0 (2023-07-24)

Bug Fixes

  • eslint-plugin: [member-ordering] account for repeated names (#6864) (d207b59)
  • eslint-plugin: [no-unsafe-enum-comparison] exempt bit shift operators (#7074) (b3e0e75)
  • eslint-plugin: [prefer-nullish-coalescing] handle case when type of left side is null or undefined (#7225) (b62affe)
  • eslint-plugin: use a default export for the rules type (#7266) (af77a1d)
  • typescript-estree: fix TSNode type error on old ts versions (#7267) (f2aed1b)

Features

  • eslint-plugin: [class-methods-use-this] add extension rule (#6457) (18ea3b1)
  • eslint-plugin: sync getFunctionHeadLoc implementation with upstream (#7260) (f813147)

You can read about our versioning strategy and releases on our website.

6.1.0 (2023-07-17)

Bug Fixes

  • eslint-plugin: [comma-dangle] fixed crash from undefined predicate.ignore (#7223) (d368164)
  • eslint-plugin: [no-floating-promises] false negative calling .then with second argument undefined (#6881) (606a52c), closes #6850
  • eslint-plugin: [no-floating-promises] finally should be transparent to unhandled promises (#7092) (2a4421c)
  • eslint-plugin: [no-unnecessary-type-constraint] correctly fix in cts/mts files (#6795) (1404796)
  • eslint-plugin: [no-unused-vars] check if any variable definition is exported (#6873) (587ac30), closes #6188
  • eslint-plugin: fix schemas across several rules and add schema tests (#6947) (dd31bed)
  • eslint-plugin: include the rules types in the package (#7215) (a3da11d)
  • typescript-estree: remove ts.sys watch program override (#7252) (41d6e9d)
  • utils: accept null as default option in applyDefault (#6724) (841889f)

Features

  • typescript-estree: add EXPERIMENTAL_useProjectService option to use TypeScript project service (#6754) (6d3d162)

You can read about our versioning strategy and releases on our website.

6.0.0 (2023-07-10)

👉 See Announcing typescript-eslint v6 for an upgrade guide and the full list of changes.

Bug Fixes

  • ast-spec: remove more invalid properties (#6243) (aa20f63)
  • bumped ts-api-utils to 0.0.39 (#6497) (217c710)
  • correct handling of additionalProperties in object schemas (#6939) (489c7a5)
  • correct jest.mock path post merge (778d254)
  • correct lint error after merge (277fdb5)
  • eslint-plugin: [explicit-module-boundary-types] remove shouldTrackReferences option from schema (#5399) (6d32734)
  • eslint-plugin: allow parser@^6.0.0 (#6630) (92908bd)
  • eslint-plugin: remove valid-typeof disable in eslint-recommended (#5381) (b82df5e)
  • fix illegal decorator check (#6723) (c456f8c)
  • rename typeParameters to typeArguments where needed (#5384) (08d757b)
  • replace tsutils with ts-api-tools (#6428) (79327b4)
  • type-utils: checking of type aliases' type names by typeMatchesSpecifier (#6820) (7ca2c90)
  • type-utils: file variant of TypeOrValueSpecifier uses canonical filenames instead of lowercasing (#6781) (5095d05)
  • type-utils: fixed TypeOrValueSpecifier not accounting for scoped DT packages (#6780) (3350940)
  • type-utils: treat intrinsic types as if they are from lib and never match error types (#6869) (ecb57de)
  • typescript-estree: account for namespace nesting in AST conversion (#6272) (09e3877)
  • typescript-estree: allow writing to deprecated node properties (#6670) (6652ebe)
  • typescript-estree: fix error handling on ImportExpression (#6587) (e8cdd5c)
  • typescript-estree: forbid override on non-constructor function/methods (#6729) (2f3638f)
  • typescript-estree: wrap import = declaration in an export node (#5885) (1c3f470), closes #5036 #5834 #5882 #5864 #3076 #5834 #5882 #5864 #5889 #5834 #5882 #5864 #5883 #4863 #5381 #5256
  • update exports field in package.json files (#6550) (53776c2)
  • utils: removed TRuleListener generic from the createRule (#5036) (361f8bc), closes #5834 #5882 #5864

chore

Features

BREAKING CHANGES

  • Removes experimental-utils - we will no longer update this package and it will be forever frozen at v5.x
  • eslint-plugin: Adds an additional class of checks to the rule
  • drop support for ESLint v6
  • drops support for node v17
  • utils: Removes meta.docs.suggestion property
  • Bumps the minimum supported range and removes handling for old versions
  • drops support for node v12

You can read about our versioning strategy and releases on our website.

5.62.0 (2023-07-10)

Bug Fixes

  • eslint-plugin: [comma-spacing] allow no space after trailing comma in objects and arrays (#6938) (24bdacc)
  • eslint-plugin: [prefer-includes] escape special characters (#7161) (5a347a5), closes #7145
  • eslint-plugin: replace auto-fix of class literal property style rule with suggestion (#7054) (a8c824a)

Features

  • eslint-plugin: [prefer-nullish-coalescing] add ignorePrimitives option (#6487) (6edaa04)

You can read about our versioning strategy and releases on our website.

5.61.0 (2023-07-03)

Features

  • eslint-plugin: [ban-types] ban types in extends and implements (#7129) (997783f)
  • support TypeScript 5.1 (#7088) (4bf2d73)
  • use graphemer instead of grapheme-splitter (#7069) (faea3ff)

You can read about our versioning strategy and releases on our website.

5.60.1 (2023-06-26)

Note: Version bump only for package @typescript-eslint/typescript-eslint

You can read about our versioning strategy and releases on our website.

5.60.0 (2023-06-19)

Features

  • eslint-plugin: [restrict-plus-operands] add allow* options (#6161) (def09f8)

5.59.11 (2023-06-12)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.59.10 (2023-06-12)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.59.9 (2023-06-05)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.59.8 (2023-05-29)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.59.7 (2023-05-22)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.59.6 (2023-05-15)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.59.5 (2023-05-08)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.59.4 (2023-05-08)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.59.3 (2023-05-08)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.59.2 (2023-05-01)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.59.1 (2023-04-24)

Bug Fixes

  • eslint-plugin: [prefer-regexp-exec] skip malformed regexes (#6935) (05ed60e)
  • eslint-plugin: [unified-signatures] no parameters function (#6940) (2970861)

5.59.0 (2023-04-17)

Bug Fixes

  • eslint-plugin: [no-unnecessary-condition] allow nullish coalescing for naked type parameter (#6910) (3e5f858)

Features

  • eslint-plugin: [ban-types] add NonNullable suggestion and allow custom suggestions (#6876) (ff65235)

5.58.0 (2023-04-10)

Bug Fixes

  • eslint-plugin: [unified-signatures] allow overloads with different named and different number of parameters (#6877) (939d665)
  • update getLib for new TypeScript targets ES2021, ES2022 (#6782) (1c04664)

Features

  • eslint-plugin: [no-unsafe-enum-comparison] add rule (#6107) (915f9c2)

5.57.1 (2023-04-03)

Bug Fixes

  • eslint-plugin: [strict-boolean-expressions] support mixed enums in allowNullableEnum option (#6740) (49be8a8)

5.57.0 (2023-03-27)

Bug Fixes

  • eslint-plugin: [no-unnecessary-boolean-literal-compare] simplify fixer and add support for double negation (#6620) (81c8519)
  • eslint-plugin: correct crashes with getTypeArguments for ts < 3.7 (#6767) (59eab58)

Features

  • eslint-plugin: [consistent-type-assertions] add suggestions for objectLiteralTypeAssertions (#6642) (720e811)
  • eslint-plugin: [consistent-type-assertions] autofix angle bracket assertions to as (#6641) (ad8ea64)
  • eslint-plugin: add no-duplicate-type-constituents rule (#5728) (bc31078)

5.56.0 (2023-03-20)

Bug Fixes

  • eslint-plugin-internal: version import (#6680) (312225f)
  • eslint-plugin: [member-ordering] check order when optionalityOrder is present with no optional members (#6619) (6aff431)
  • eslint-plugin: [no-misused-promises] avoid unnecessary calls to getContextualType (#6193) (745cfe4)
  • eslint-plugin: [no-misused-promises] fix incorrect detection of void functions in JSX attributes (#6638) (9e41cee)
  • eslint-plugin: [strict-boolean-expression] support falsy and truthy literals simultaneously (#6672) (62ef487)
  • eslint-plugin: [strict-boolean-expressions] handle truthy enums (#6618) (0d0639f)
  • eslint-plugin: add TSPropertySignature with TSFunctionType annotation to typeMethod selector (#6645) (3fc5c63)

Features

  • eslint-plugin: add allowNever support to restrict-template-expressions (#6554) (423f164)

5.55.0 (2023-03-13)

Bug Fixes

  • eslint-plugin: [no-confusing-void-expression] check sequence expressions for void is in last position (#6597) (d73d7d3)
  • eslint-plugin: [no-unnecessary-boolean-literal-compare] fixer should handle parentheses (#6569) (2d8c196)

Features

5.54.1 (2023-03-06)

Bug Fixes

  • typescript-estree: do not call export of clearProgramCache (#6540) (181e705)

5.54.0 (2023-02-27)

Bug Fixes

  • typescript-estree: check for relative/root paths in printing file path errors (#6491) (dc14242)
  • website: corect playground build issue (#6506) (6aad7d3)

Features

  • eslint-plugin: [promise-function-async] check for promises in implicit return types (#6330) (de1e5ce), closes #6329

5.53.0 (2023-02-20)

Features

  • eslint-plugin: [consistent-generic-constructors] handle default parameters (#6484) (e8cebce)
  • eslint-plugin: [no-mixed-enums] add rule (#6102) (16144d1)
  • typescript-estree: expose a wrapper cache clearing function for advanced usecases (#6476) (d816496)

5.52.0 (2023-02-13)

Bug Fixes

  • eslint-plugin: [no-import-type-side-effects] correctly ignore zero-specifier imports (#6444) (d5a6688)
  • eslint-plugin: [no-unnecessary-condition] account for optional chaining on potentially void values (#6432) (e1d9c67), closes #5255
  • eslint-plugin: [no-unnecessary-condition] fix false positive when checking indexed access types (#6452) (d569924)
  • eslint-plugin: fix key-spacing when type starts on next line (#6412) (3eb2eed)

Features

  • eslint-plugin: [block-spacing] extending base rule for TS related blocks (#6195) (b2db3f5)
  • eslint-plugin: [explicit-function-return-type] add allowFunctionsWithoutTypeParameters option (#6105) (113640e)
  • eslint-plugin: [explicit-function-return-type] add allowIIFEs option (#6237) (a1b3f7b)
  • typescript-estree: add .kind to TSModuleDeclaration (#6443) (2f948df)
  • typescript-estree: allow specifying project: true (#6084) (dcd05f0)

5.51.0 (2023-02-06)

Bug Fixes

  • eslint-plugin: [sort-type-constituents] fixed behavior change (#6384) (5bf7f7f), closes #6339
  • eslint-plugin: do not use .at(), Node 14 does not support it (#6402) (077ed1b)

Features

  • eslint-plugin: [naming-convention] improve performance by removing unnecessary selectors (#6376) (3647a1c)
  • eslint-plugin: [no-floating-promises] error on logical expression (#6356) (f330e06)
  • eslint-plugin: [no-import-type-side-effects] add rule to warn against runtime side effects with verbatimModuleSyntax (#6394) (b14d3be)
  • eslint-plugin: [strict-boolean-expressions] add allow nullable enum to strict boolean expressions (#6096) (d4747cd)
  • typescript-estree: cache project glob resolution (#6367) (afae837)

5.50.0 (2023-01-31)

Bug Fixes

  • ast-spec: a JSXEmptyExpression is not a possible JSXExpression (#6321) (4b27777)
  • eslint-plugin: [ban-ts-comment] counts graphemes instead of String.prototype.length (#5704) (09d57ce)
  • eslint-plugin: [prefer-optional-chain] fix ThisExpression and PrivateIdentifier errors (#6028) (85e783c)
  • eslint-plugin: [prefer-optional-chain] fixer produces wrong logic (#5919) (b0f6c8e), closes #1438

Features

  • eslint-plugin: add key-spacing rule extension for interface & type declarations (#6211) (67706e7)

5.49.0 (2023-01-23)

Bug Fixes

Features

  • eslint-plugin: [naming-convention] add support for #private modifier on class members (#6259) (c8a6d80)

5.48.2 (2023-01-16)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.48.1 (2023-01-09)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.48.0 (2023-01-02)

Bug Fixes

Features

  • eslint-plugin: specify which method is unbound and added test case (#6281) (cf3ffdd)

5.47.1 (2022-12-26)

Bug Fixes

  • ast-spec: correct some incorrect ast types (#6257) (0f3f645)
  • eslint-plugin: [member-ordering] correctly invert optionalityOrder (#6256) (ccd45d4)

5.47.0 (2022-12-19)

Features

  • eslint-plugin: [no-floating-promises] add suggestion fixer to add an 'await' (#5943) (9e35ef9)

5.46.1 (2022-12-12)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.46.0 (2022-12-08)

Bug Fixes

  • eslint-plugin: [ban-types] update message to suggest object instead of Record<string, unknown> (#6079) (d91a5fc)

Features

  • eslint-plugin: [prefer-nullish-coalescing] logic and test for strict null checks (#6174) (8a91cbd)

5.45.1 (2022-12-05)

Bug Fixes

  • eslint-plugin: [keyword-spacing] unexpected space before/after in import type (#6095) (98caa92)
  • eslint-plugin: [no-shadow] add call and method signatures to ignoreFunctionTypeParameterNameValueShadow (#6129) (9d58b6b)
  • eslint-plugin: [prefer-optional-chain] collect MetaProperty type (#6083) (d7114d3)
  • eslint-plugin: [sort-type-constituents, sort-type-union-intersection-members] handle some required parentheses cases in the fixer (#6118) (5d49d5d)
  • parser: remove the jsx option requirement for automatic jsx pragma resolution (#6134) (e777f5e)

5.45.0 (2022-11-28)

Bug Fixes

  • eslint-plugin: [array-type] --fix flag removes parentheses from type (#5997) (42b33af)
  • eslint-plugin: [keyword-spacing] prevent crash on no options (#6073) (1f19998)
  • eslint-plugin: [member-ordering] support private fields (#5859) (f02761a)
  • eslint-plugin: [prefer-readonly] report if a member's property is reassigned (#6043) (6e079eb)
  • scope-manager: add support for TS4.9 satisfies expression (#6059) (44027db)
  • typescript-estree: stub out ts.SatisfiesExpression on old TS versions (#6076) (1302b30)

Features

  • eslint-plugin: [member-ordering] add a required option for required vs. optional member ordering (#5965) (2abadc6)
  • support Auto Accessor syntax (#5926) (becd1f8)

5.44.0 (2022-11-21)

Bug Fixes

  • eslint-plugin: [no-empty-interface] disable autofix for declaration merging with class (#5920) (a4f85b8)
  • eslint-plugin: [no-unnecessary-condition] handle index signature type (#5912) (5baad08)
  • eslint-plugin: [prefer-optional-chain] handle binary expressions in negated or (#5992) (2778ff0)
  • typescript-estree: don't consider a cached program unless it's specified in the current parserOptions.project config (#5999) (530e0e6)

Features

  • eslint-plugin: [adjacent-overload-signatures] check BlockStatement nodes (#5998) (97d3e56)
  • eslint-plugin: [keyword-spacing] Support spacing in import-type syntax (#5977) (6a735e1)
  • support parsing satisfies operators (#5717) (20d7cae)
  • update to TypeScript 4.9 (#5716) (4d744ea)

5.43.0 (2022-11-14)

Bug Fixes

  • eslint-plugin: [no-shadow] handle false positives on generics and parameters (#5902) (769e8c8)
  • eslint-plugin: [promise-function-async] handle keyword token (#5907) (f25a94f)

Features

  • eslint-plugin: [consistent-type-imports] support fixing to inline types (#5050) (75dcdf1)
  • eslint-plugin: [naming-convention] add support for "override" and "async" modifiers (#5310) (#5610) (c759da1)
  • eslint-plugin: [prefer-optional-chain] support suggesting !foo || !foo.bar as a valid match for the rule (#5594) (923d486)

5.42.1 (2022-11-07)

Bug Fixes

  • ast-spec: correct misnamed ExportNamedDeclaration AST type (#5913) (e88f4fa)
  • eslint-plugin: isTypeReadonly stack overflow (#5875) (#5876) (2d9a33c)

5.42.0 (2022-10-31)

Bug Fixes

  • ast-spec: add TSQualifiedName to TypeNode union (#5906) (5c316c1)
  • eslint-plugin: [no-extra-parens] handle type assertion in extends clause (#5901) (8ed7219)
  • eslint-plugin: enable react/jsx-curly-brace-presence lint rule in website package (#5894) (344322a)
  • typescript-estree: don't allow single-run unless we're in type-aware linting mode (#5893) (891b087)

Features

  • eslint-plugin: [member-ordering] add natural sort order (#5662) (1eaae09)
  • eslint-plugin: [no-invalid-void-type] better report message for void used as a constituent inside a function return type (#5274) (d806bda)
  • scope-manager: ignore ECMA version (#5881) (3b8d449)
  • typescript-estree: clarify docs and error for program project without matching TSConfig (#5762) (67744db)
  • utils: add RuleTester API for top-level dependency constraints (#5896) (0520d53)
  • website: Add a happy message to playground output pane when no errors or AST (#5868) (#5873) (c4e0d86)

Reverts

  • Revert "feat(scope-manager): ignore ECMA version" (#5888) (2ee81df), closes #5888 #5881

5.41.0 (2022-10-24)

Bug Fixes

  • eslint-plugin: [no-base-to-string] ignore Error, URL, and URLSearchParams by default (#5839) (96e1c6c)
  • type-utils: prevent stack overflow in isTypeReadonly (#5860) (a6d8f7e), closes #4476

Features

  • eslint-plugin: [no-unsafe-declaration-merging] switch to use scope analysis instead of type information (#5865) (e70a10a)
  • eslint-plugin: add no-unsafe-declaration-merging (#5840) (3728031)

5.40.1 (2022-10-17)

Bug Fixes

  • eslint-plugin: Skip missing 'rest' tuple type arguments in no-misused-promises (#5809) (c5beaa2), closes #5807
  • utils: add missing dependency on @types/semver (#5825) (17b8879)

5.40.0 (2022-10-10)

Bug Fixes

  • eslint-plugin: [consistent-indexed-object-style] handle interface generic (#5746) (7a8a0a3)
  • eslint-plugin: [no-unnecessary-condition] handle void (#5766) (ac8f06b)

Features

  • eslint-plugin: Check 'rest' parameters in no-misused-promises (#5731) (6477f38), closes #4015
  • utils: add dependency constraint filtering for RuleTester (#5750) (121f4c0)
  • website: store options TypeScript, Enable jsx and AST Viewer in browser's local storage (#5769) (77d2336)

5.39.0 (2022-10-03)

Features

  • eslint-plugin: allow using void as a default type for a generic argument if allowInGenericTypeArguments is specified (#5671) (bb46ef0)

5.38.1 (2022-09-26)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.38.0 (2022-09-19)

Features

  • website: add warning on top of formatting rule docs pages (#5598) (5dfa2e9)

5.37.0 (2022-09-12)

Bug Fixes

  • eslint-plugin: [strict-boolean-expressions] check all conditions in a logical operator chain (#5539) (77d76e2)
  • website: Use extended base rule name from file's meta (#5621) (7fd2f89)

Features

  • docs: always expanding collapsible sidebar menus under docs (#5608) (8176fb1)

5.36.2 (2022-09-05)

Bug Fixes

  • eslint-plugin: [no-extra-parens] handle generic ts array type. (#5550) (0d6a190)
  • scope-manager: correct handling for class static blocks (#5580) (35bb8dd)
  • typescript-estree: don't double add decorators to a parameter property's parameter (#5582) (863694c)

5.36.1 (2022-08-30)

Bug Fixes

  • typescript-estree: fix decorator regression for pre TS4.8 (#5574) (a603015)

5.36.0 (2022-08-30)

Bug Fixes

Features

5.35.1 (2022-08-24)

Bug Fixes

  • eslint-plugin: correct rule schemas to pass ajv validation (#5531) (dbf8b56)

5.35.0 (2022-08-24)

Features

  • eslint-plugin: [explicit-member-accessibility] suggest adding explicit accessibility specifiers (#5492) (0edb94a)

5.34.0 (2022-08-22)

Bug Fixes

  • ast-spec: NewExpression argument can be SpreadElement now (#5422) (3ced62f)
  • eslint-plugin: [no-useless-constructor] handle parameter decorator (#5450) (864dbcf)
  • scope-manager: visit static blocks (#5489) (78745c2)

Features

  • eslint-plugin: [prefer-optional-chain] support suggesting !foo || !foo.bar as a valid match for the rule (#5266) (aca935c)
  • types: add unbound property in parser options (#5419) (e08a9dd)

5.33.1 (2022-08-15)

Bug Fixes

  • missing placeholders in violation messages for no-unnecessary-type-constraint and no-unsafe-argument (and enable eslint-plugin/recommended rules internally) (#5453) (d023910)

5.33.0 (2022-08-08)

Bug Fixes

  • eslint-plugin: [no-extra-parens] handle await with type assertion (#5428) (e03826f)
  • website: add explicit frontmatter description to rule docs (#5429) (63cba5f)

Features

  • eslint-plugin: [member-ordering] support static blocks (#5417) (5983e5a)
  • eslint-plugin: [prefer-as-const] adds support for class properties (#5413) (d2394f8)

5.32.0 (2022-08-01)

Features

  • eslint-plugin: [no-use-before-define] add "allowNamedExports" option (#5397) (ad412cd)

5.31.0 (2022-07-25)

Bug Fixes

  • eslint-plugin: [typedef] Support nested array destructuring with type annotation (#5311) (6d19efe)
  • scope-manager: handle typeParameters of TSInstantiationExpression (#5355) (2595ccf)

Features

  • eslint-plugin: [consistent-generic-ctors] check class field declaration (#5288) (48f996e)
  • eslint-plugin: [prefer-nullish-coalescing] add ignoreTernaryTests option (#4965) (f82727f)

5.30.7 (2022-07-18)

Bug Fixes

  • eslint-plugin: [no-inferrable] fix optional param to valid code (#5342) (98f6d5e)
  • eslint-plugin: [no-unused-vars] highlight last write reference (#5267) (c3f199a)
  • expose types supporting old versions of typescript (#5339) (4ba9bdb)
  • scope-manager: allow visiting of constraint in infer type (#5331) (b2846a1)

5.30.6 (2022-07-11)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.30.5 (2022-07-04)

Bug Fixes

  • eslint-plugin: [consistent-indexed-object-style] fix record mode fixer for generics with a default value (#5280) (57f032c)

5.30.4 (2022-07-03)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.30.3 (2022-07-01)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.30.2 (2022-07-01)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.30.1 (2022-07-01)

Bug Fixes

  • eslint-plugin: [no-base-to-string] add missing apostrophe to message (#5270) (d320174)

5.30.0 (2022-06-27)

Features

  • eslint-plugin: [no-shadow] add shadowed variable location to the error message (#5183) (8ca08e9)
  • treat this in typeof this as a ThisExpression (#4382) (b04b2ce)

5.29.0 (2022-06-20)

Features

  • website: open issue with rule name if only one rule is enabled (#5190) (b229ee4)

5.28.0 (2022-06-13)

Bug Fixes

  • [TS4.7] allow visiting of typeParameters in TSTypeQuery (#5166) (dc1f930)
  • eslint-plugin: [space-infix-ops] support for optional property without type (#5155) (1f25daf)

Features

  • ast-spec: extract AssignmentOperatorToText (#3570) (45f75e6)
  • eslint-plugin: [consistent-generic-constructors] add rule (#4924) (921cdf1)

5.27.1 (2022-06-06)

Bug Fixes

  • eslint-plugin: [space-infix-ops] correct PropertyDefinition with typeAnnotation (#5113) (d320174)
  • eslint-plugin: [space-infix-ops] regression fix for conditional types (#5135) (e5238c8)
  • eslint-plugin: [space-infix-ops] regression fix for type aliases (#5138) (4e13deb)

5.27.0 (2022-05-30)

Bug Fixes

  • eslint-plugin: [no-type-alias] handle Template Literal Types (#5092) (8febf11)
  • types: remove leftovers from removal of useJSXTextNode (#5091) (f9c3647)

Features

  • [4.7] support new extensions (#5027) (efc147b)
  • [TS4.7] support type parameters for typeof (#5067) (836de79)
  • bump dependency ranges to TypeScript 4.7 (#5082) (c4310b1)
  • eslint-plugin: [ban-ts-comment] add descriptionFormat option (#5026) (1fb31a4)
  • eslint-plugin: [no-misused-promises] warn when spreading promises (#5053) (61ffa9e)
  • eslint-plugin: [space-infix-ops] missing error report for conditional types (#5041) (0bfab6c)

5.26.0 (2022-05-23)

Bug Fixes

  • ast-spec: add SpreadElement to ArrayExpression.elements (#5025) (9f3121b)
  • eslint-plugin: [member-delimiter-style] autofixer result is not as expected when comments after the delimiter with option delimiter: 'none' (#5029) (ed7b5f6)
  • eslint-plugin: [member-delimiter-style] autofixer result is not as expected with option delimiter: 'none' (#5023) (9e97a11)
  • eslint-plugin: [prefer-readonly] correct issue with anonymus functions (#4974) (952e2f0), closes #2590

Features

  • [4.7] support instantiation expressions (#4938) (79fbc77)
  • [4.7] support optional variance annotation (#4831) (7e7b24c)
  • typescript-estree: extends constraints for infer (#4830) (8cbbcc3)

5.25.0 (2022-05-17)

Bug Fixes

  • eslint-plugin: [typedef] stop enforcing rule for assignment expressions (#4958) (04a216c)
  • eslint-plugin: strict config should not extend recommended (#5005) (05d71c2)
  • website: correct Presets link to be Configs (#5004) (e18e91c)

Features

  • eslint-plugin: [no-empty-function] new allow option overrideMethods (#4923) (13c05ae)
  • eslint-plugin: deprecate no-duplicate-imports in favour of import/no-duplicates (#4973) (1d2e41a)
  • update to TypeScript 4.7-rc (#4829) (6fe783c)

5.24.0 (2022-05-16)

Bug Fixes

  • eslint-plugin: [array-type] in fixer add missing parens for constructor types #4756 (#4971) (0377070)
  • website: missing colon before tip notes in configs.md (#4982) (f3a1aba)

Features

  • eslint-plugin: Add BigInt object type to default ban-types list (#4970) (1867728)
  • eslint-plugin: add new 'strict' config (#4706) (4a500b2)

5.23.0 (2022-05-09)

Bug Fixes

  • ast-spec: correct AwaitExpression.argument type (#4880) (3ec5f53)
  • eslint-plugin: [no-restricted-imports] allow type import as long as there's one matching pattern (#4898) (0419d28)
  • eslint-plugin: [no-unnecessary-type-constraint] change to suggestion fix, fix multiple trailing comma failures (#4901) (4507ac8)

Features

5.22.0 (2022-05-02)

Bug Fixes

  • add rule to vscode settings (#4881) (3eab889)
  • eslint-plugin: [comma-spacing] verify nextToken exists (#4868) (23746f8)

Features

  • ast-spec: add fixture test framework and some initial fixtures (#3258) (f3cf87b)
  • eslint-plugin: [no-duplicate-enum-values] add rule (#4833) (5899164)

5.21.0 (2022-04-25)

Bug Fixes

  • eslint-plugin: [no-misused-promises] prioritize false returns when checking whether a function returns only void (#4841) (ccadb60)
  • eslint-plugin: [no-namespace] fix false positive for exported namespaces when allowDeclarations=true (#4844) (4e7c9be)
  • eslint-plugin: [space-infix-ops] fix no error when right type is function (#4848) (d74d559)

Features

  • eslint-plugin: [parameter-properties] add rule to replace no-parameter-properties (#4622) (88ed9ec)

5.20.0 (2022-04-18)

Features

  • eslint-plugin: [no-magic-numbers] ignoreTypeIndexes option (#4789) (5e79451)

5.19.0 (2022-04-11)

Bug Fixes

  • eslint-plugin: update code to use estree range instead of ts pos/end #4723 (#4790) (a1e9fc4)

Features

  • eslint-plugin: [unified-signatures] add ignoreDifferentlyNamedParameters option (#4659) (fdf95e0)
  • eslint-plugin: add support for valid number and bigint intersections in restrict-plus-operands rule (#4795) (19c600a)

5.18.0 (2022-04-04)

Bug Fixes

  • eslint-plugin: method-signature-style respect getter signature (#4777) (12dd670)
  • visitor-keys: add missing visitor keys (#4731) (bb575a0)

Features

  • eslint-plugin: [no-shadow] ignoreOnInitialization option (#4603) (068ea9b)
  • eslint-plugin: [no-this-alias] report on assignment expressions (#4718) (8329498)

5.17.0 (2022-03-28)

Bug Fixes

  • code container hiding navigation menu (#4707) (96bc69a)
  • revert "chore: Bump cypress from 8.3.0 to 9.5.2", and ignore cypress for now (#4740) (cf5f5c4), closes #4710

Features

  • eslint-plugin: [no-unused-vars] add destructuredArrayIgnorePattern options (#4748) (6f8db8b)

5.16.0 (2022-03-21)

Bug Fixes

  • eslint-plugin: [consistent-type-assertions] enforce assertionStyle for const assertions (#4685) (8ec05be)
  • scope-manager: incorrect reference for this within a jsx identifier (#4535) (dd49280)
  • utils: RuleTester: Only call afterAll if defined (#4656) (0fe0683)

Features

  • eslint-plugin: [prefer-optional-chain] support logical with empty object (#4430) (d21cfe0)

5.15.0 (2022-03-14)

Features

  • parser: add parserOptions.emitDecoratorMetadata (#4646) (e3dd343)

5.14.0 (2022-03-07)

Bug Fixes

  • eslint-plugin: [naming-convention] cover case that requires quotes (#4582) (3ea0947)
  • eslint-plugin: [no-misused-promises] factor thenable returning function overload signatures (#4620) (56a09e9)
  • eslint-plugin: [prefer-readonly-parameter-types] handle class sharp private field and member without throwing error (#4343) (a65713a)
  • eslint-plugin: [return-await] correct autofixer in binary expression (#4401) (5fa2fad)

Features

  • eslint-plugin: [no-misused-promises] add granular options within checksVoidReturns (#4623) (1085177)
  • TypeScript 4.6 (#4615) (a02c63a)

5.13.0 (2022-02-28)

Bug Fixes

  • eslint-plugin: [sort-type-union-intersection-members] Wrap the constructorType in parentheses (#4590) (851bb90)

Features

  • eslint-plugin: [no-misused-promises] check more places for checksVoidReturn (#4541) (052cf51)
  • eslint-plugin: add no-redundant-type-constituents rule (#4378) (63d051e)
  • eslint-plugin: add no-useless-empty-export rule (#4380) (823b945)
  • eslint-plugin: add extension rule space-before-blocks (#1606) (#4184) (208b6d0)
  • eslint-plugin: added member group support to member-ordering rule (#4538) (6afcaea)
  • utils: expose ast-utils' helpers (#4503) (f106e4b)
  • utils: extract isNotTokenOfTypeWithConditions out of ast-utils' predicates (#4502) (66501d6)

5.12.1 (2022-02-21)

Bug Fixes

  • eslint-plugin: [no-unnecessary-type-arguments] fix comparison of types (#4555) (fc3936e)

5.12.0 (2022-02-14)

Bug Fixes

  • eslint-plugin: [init-declarations] fix nested namespace (#4544) (fe910e6)
  • eslint-plugin: [no-unnecessary-type-arguments] Use Symbol to check if it's the same type (#4543) (5b7d8df)
  • support nested object deconstructuring with type annotation (#4548) (4da9278)

Features

  • add checking property definition for allowNames option (#4542) (e32bef6)

5.11.0 (2022-02-07)

Bug Fixes

  • eslint-plugin: [no-magic-numbers] fix invalid schema merging (#4517) (b95f796)
  • eslint-plugin: [non-nullable-type-assertion-style] fix false positive when asserting to a generic type that might be nullish (#4509) (4209362)

Features

  • eslint-plugin: [explicit-function-return-type] add allowedNames (#4440) (936e252)

5.10.2 (2022-01-31)

Bug Fixes

  • eslint-plugin: [no-restricted-imports] allow relative type imports with patterns configured (#4494) (4a6d217)

5.10.1 (2022-01-24)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.10.0 (2022-01-17)

Bug Fixes

  • eslint-plugin: [explicit-function-return-type] support AllowTypedFunctionExpression within AllowHigherOrderFunction (#4250) (d053cde)
  • eslint-plugin: [no-extra-semi] false negatives when used with eslint 8.3.0 (#4458) (f4016c2)
  • eslint-plugin: [no-invalid-this] crash when used with eslint 8.7.0 (#4448) (e56f1e5)
  • eslint-plugin: [no-magic-numbers] handle bigint in class props (#4411) (c8e650f)
  • type-utils: check IndexSignature internals when checking isTypeReadonly (#4417) (ef3147c), closes #4410 #3714
  • type-utils: intersection types involving readonly arrays are now handled in most cases (#4429) (5046882)
  • type-utils: isTypeReadonly now handles conditional types (#4421) (39a6806)
  • type-utils: union types always being marked as readonly (#4419) (99ab193)

Features

  • rename experimental-utils to utils and make experimental-utils an alias to the new package (#4172) (1d55a75)
  • type-utils: make isTypeReadonly's options param optional (#4415) (3a07a56)

5.9.1 (2022-01-10)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.9.0 (2022-01-03)

Features

  • experimental-utils: move isTypeReadonly from eslint-plugin to experimental-utils (#3658) (a9eb0b9)

5.8.1 (2021-12-27)

Bug Fixes

  • eslint-plugin: [consistent-indexed-object-style] do not report for circular references (#4347) (6edebcd)
  • eslint-plugin: [consistent-type-definitions] correct fixer with declare keyword (#4334) (0cd911a)
  • eslint-plugin: [padding-line-between-statements] make function overloading is also processed (#4345) (d31ec26)

5.8.0 (2021-12-20)

Bug Fixes

  • eslint-plugin: [no-implied-eval] improve performance (#4313) (e344596)
  • eslint-plugin: [padding-line-between-statements] type StatementTypes can't differenciate from variable (#4270) (bfc4324)
  • eslint-plugin: [strict-boolean-expression] false positive for truthy boolean (#4275) (72c2e41)
  • eslint-plugin: array-type mark AST_NODE_TYPES.TSBigIntKeyword as simple (#4274) (74e544e)
  • eslint-plugin: handle method overloading in semi (#4318) (3b87b49)
  • experimental-utils: support immutable members (#3844) (3d33a77)

Features

  • eslint-plugin: [no-throw-literal] add options to to disallow any/unknown (#4207) (ff0adf9)
  • eslint-plugin: [restrict-plus-operand] add allowAny option (#4260) (2788545)

5.7.0 (2021-12-13)

Bug Fixes

  • typescript-estree: type-only regression for consumers not yet on TS 4.5 (#4272) (550b61e)

Features

  • eslint-plugin: [consistent-type-exports] support TS4.5 inline export specifiers (#4236) (be4d976)
  • eslint-plugin: [consistent-type-imports] support TS4.5 inline import specifiers (#4237) (f61af7c)
  • eslint-plugin: [no-shadow] support TS4.5 inline import specifiers (#4239) (96b7e8e)

5.6.0 (2021-12-06)

Features

  • scope-manager: support TS4.5 import/export specifier kind (#4234) (833f822)
  • scope-manager: update lib types (#4240) (8377e6e)

5.5.0 (2021-11-29)

Bug Fixes

  • eslint-plugin: [member-ordering] order literal names correctly in (#4054) (d57141a)
  • eslint-plugin: [no-duplicate-imports] remove unnecessary type checking for node.source (#4196) (637722a)
  • eslint-plugin: [no-var-requires] do not report require created from createRequire (#4221) (0040186)
  • eslint-plugin: [prefer-for-of] do nor error when iterating over this (#4176) (258ddb0)
  • eslint-plugin: [require-await] treat yield* asynciterable as an await (#4125) (5a4ce6a)
  • eslint-plugin: remove all whitespaces in comparison #4220 (#4223) (853d799)
  • experimental-utils: export RuleCreator interfaces (#4199) (7821e4c)
  • experimental-utils: fix types for eslint-utils (#4173) (7079de2)
  • scope-manager: support static class blocks (#4211) (f8e9125)
  • visitor-keys: add missing import assertion keys (#4178) (9c38b7f)

Features

  • eslint-plugin: [member-ordering] add option to sort case insensitive (#3896) (e3533d5)
  • eslint-plugin: array-type distinguish whether readonly or not (#4066) (314af44)

5.4.0 (2021-11-15)

Bug Fixes

  • correct issues with circular imports (#4140) (4c87b24)
  • eslint-plugin: [explicit-member-accessibility] private fields cannot have accessibility modifiers (#4117) (81b25c1)
  • eslint-plugin: [no-implied-eval] ignore locally declared functions (#4049) (d97140e)
  • eslint-plugin: check optional chaining for floating promises (#4096) (d724777)
  • landing page title duplication (#4123) (844c25e)

Features

  • add RuleCreator.withoutDocs (#4136) (87cfc6a)
  • experimental-utils: add default [] for RuleModule TOptions generic (#4135) (62b8098)
  • typescript-estree: support Import Assertions (#4074) (ae0fb5a)
  • typescript-estree: support private fields in-in syntax (#4075) (939d8ea)
  • typescript-estree: support type-only module specifiers (#4076) (77baa92)

5.3.1 (2021-11-08)

Note: Version bump only for package @typescript-eslint/typescript-eslint

5.3.0 (2021-11-01)

Bug Fixes

  • eslint-plugin: ignore private identifiers in explicit-module-boundary-types (#4046) (80b853d)
  • eslint-plugin: skip seenTypes for unions in isTypeReadonly (#4043) (6af7ca7)
  • experimental-utils: add name property to test case interface (#4067) (f3021c9)

Features

  • eslint-plugin: [no-shadow] exclude external type declaration merging (#3959) (a93cebf)
  • experimental-utils: extract isTokenOfTypeWithConditions out of ast-utils' predicates (#3977) (5229597)

5.2.0 (2021-10-25)

Bug Fixes

  • eslint-plugin: [typedef] fix regression with class properties (#4034) (fe53d22), closes #4033

Features

  • eslint-plugin: adding consistent-type-exports rule (#3936) (1971a3f)

5.1.0 (2021-10-18)

Bug Fixes

  • eslint-plugin: [no-restricted-imports]: report type-only imports properly (#3996) (283cdf2)
  • eslint-plugin: [strict-bool-expr] treat unconstrained generic as any (#3981) (9b29ca7)
  • typescript-estree: support private optional property definition (#3997) (8605e08)

Features

  • experimental-utils: extract ast-utils' predicates' helpers (#3976) (154ec9a)

5.0.0 (2021-10-11)

Bug Fixes

  • eslint-plugin: [explicit-member-accessibility] report TSAbstractPropertyDefinition and TSAbstractMethodDefinition properly (#3901) (82016f9)
  • eslint-plugin: update new rules from master (#3840) (d88a6b4)
  • update new rules from master (b34fb7e)
  • eslint-plugin: crash in no-dupe-class-members (v5) (#3813) (4b09644)
  • experimental-utils: fix isSetter's return type (#3975) (d256856)
  • typescript-estree: change source of ExportNamedDeclaration to Literal from Expression (#3763) (dc5a0f5)

Features

  • ast-spec: bring Node objects in line with ESTree (#3771) (dd14064)
  • eslint-plugin: remove object from ban-types' default types (#3818) (ae3fa90)
  • eslint-plugin: removed value from abstract property nodes (#3765) (5823524), closes #3748
  • eslint-plugin: update recommended configs (#3809) (deeb7bb)
  • align class property representation with ESTree (#3806) (22fa5c0), closes #3430 #3077
  • remove meta.docs.category from rules (#3800) (71c9370)
  • remove TSParenthesizedType (#3340) (c8ee432), closes #3136
  • support PrivateIdentifier (#3808) (0eefe5e), closes #3430 #2933
  • eslint-plugin: [comma-dangle] align schema with ESLint v8 (#3768) (0acfafc)
  • eslint-plugin: [member-ordering] add support for getters and setters (#3611) (e264124)
  • eslint-plugin: remove no-unused-vars-experimental (79ae03b)
  • experimental-utils: extract isNodeOfTypes out of ast-utils' predicates (#3836) (0cc509b)
  • typescript-estree: remove legacy useJSXTextNode option (#3109) (5b84b98)
  • support ESLint v8 (#3737) (4ca62ae)
  • experimental-utils: remove getComments from ESLint SourceCode types (#3766) (165a507)

BREAKING CHANGES

  • eslint-plugin: ban-types no longer reports object by default

4.33.0 (2021-10-04)

Bug Fixes

  • eslint-plugin: [lines-between-class-members] fix exceptAfterOverload for abstract methods (#3943) (240fc65)
  • eslint-plugin: [no-confusing-void-expression] support optional chaining (#3937) (c40dd13)
  • eslint-plugin: [no-restricted-imports] fix crash when no options given (#3947) (edaa3c1)
  • eslint-plugin: [non-nullable-type-assertion-style] false-positive with non-nullish as assertions and types (#3940) (40760f9)
  • eslint-plugin: [padding-line-between-statements] TSModuleBlock should change scope (#3944) (f8f534e)
  • eslint-plugin: [prefer-regexp-exec] check RegExp without flags (#3946) (0868725)
  • experimental-utils: add getPhysicalFilename() to RuleContext (#3934) (ee5dfd4)
  • experimental-utils: require fix in suggestions (#3949) (f022fb1)

Features

  • experimental-utils: extract isNodeOfTypeWithConditions out of ast-utils' predicates (#3837) (214f898)

4.32.0 (2021-09-27)

Bug Fixes

  • eslint-plugin: [consistent-type-definitions] correct fix for export default (#3899) (ebb33ed)
  • eslint-plugin: [no-require-imports] report only global require (#3871) (8aa87a1)
  • eslint-plugin: [no-shadow] ignore type-only imports properly (#3868) (dda9cee)
  • eslint-plugin: [no-var-requires] report problems within NewExpression (#3884) (ed5e459)
  • eslint-plugin: [padding-line-between-statements] problems within namespaces not being reported (#3869) (1861356)
  • eslint-plugin: [prefer-regexp-exec] respect flags when using RegExp (#3855) (ffdb5ff)
  • eslint-plugin: [prefer-return-this-type] handle generics properly in fixer (#3852) (9e98b8f)
  • eslint-plugin: false-positive/negative with array index in no-unnecessary-condition (#3805) (bdb8f0b)
  • experimental-utils: add missing signature for isParenthesized (#3887) (806eaac)

Features

  • eslint-plugin: [no-type-alias]: add allowGenerics option (#3865) (4195919)
  • eslint-plugin: add no-non-null-asserted-nullish-coalescing rule (#3349) (4e99961)
  • eslint-plugin: add new extended rule no-restricted-imports (#3775) (ec5d506)
  • eslint-plugin-internal: [prefer-ast-types-enum] add DefinitionType enum (#3916) (13b7de5)
  • Support 'latest' as ecmaVersion (#3873) (25a42c0)

4.31.2 (2021-09-20)

Note: Version bump only for package @typescript-eslint/typescript-eslint

4.31.1 (2021-09-13)

Note: Version bump only for package @typescript-eslint/typescript-eslint

4.31.0 (2021-09-06)

Bug Fixes

  • ast-spec: remove duplicate union types from Expression (#3770) (463e768)
  • utils: support immutable arrays in ReportFixFunction (#3830) (8218055)

Features

  • eslint-plugin: [prefer-readonly-parameter-types] add option treatMethodsAsReadonly (#3733) (a46e318)
  • eslint-plugin: [restrict-template-expressions] add option to allow RegExp (#3709) (363b3dc)
  • eslint-plugin: add no-meaningless-void-operator rule (#3641) (ea40ab6)
  • eslint-plugin: add extension rule padding-line-between-statements (#3418) (f79ae9b)
  • experimental-utils: extract isNodeOfType out of ast-utils' predicates (#3677) (4bfa437)

4.30.0 (2021-08-30)

Bug Fixes

  • eslint-plugin: [dot-notation] false positive with optional chaining (#3711) (c19fc6e), closes #3510
  • eslint-plugin: [prefer-reduce-type-parameter] handle already existing type params (#3706) (71dd273)
  • eslint-plugin: isTypeReadonly error with <TS3.7 (#3731) (5696407)
  • visitor-keys: add key to StaticBlock (v5) (#3812) (fa35e22)

Features

  • experimental-utils: add literal types to global option (#3634) (820965c)
  • typescript-estree: add support for class static blocks (#3730) (f81831b)

4.29.3 (2021-08-23)

Note: Version bump only for package @typescript-eslint/typescript-eslint

4.29.2 (2021-08-16)

Note: Version bump only for package @typescript-eslint/typescript-eslint

4.29.1 (2021-08-09)

Note: Version bump only for package @typescript-eslint/typescript-eslint

4.29.0 (2021-08-02)

Bug Fixes

  • eslint-plugin: [no-implied-eval] handle bind on nested member expressions (#3598) (f5a6806)
  • eslint-plugin: [no-implied-eval] permit more expression types (#3624) (ca7c549)
  • eslint-plugin: [no-unnecessary-boolean-literal-compare] incorrect fix when condition is reversed (#3581) (b595575)
  • eslint-plugin: [return-await] handle nested functions correctly (#3601) (4a196b5)
  • eslint-plugin: [return-await] properly handle fixes for TSAsExpression (#3631) (00a4369)
  • experimental-utils: simplify eslint-utils' findVariable's signature in ast-utils (#3574) (3ef5267)
  • typescript-estree: correct tty check (#3635) (62bcc93)
  • typescript-estree: ensure --fix works with singleRun mode (#3655) (99eca0d)

Features

  • ast-spec: extract ExportKind & ImportKind (#3564) (120d566)
  • ast-spec: make BaseNode & BaseToken more type-safe (#3560) (a6c5604)
  • eslint-plugin: [no-redeclare] ignoreDeclarationMerge of enum+namespace (#3572) (18e30cb)
  • eslint-plugin: [prefer-return-this-type] add a new rule (#3228) (5e1a615)
  • eslint-plugin: Catch unused React import with new JSX transform (#3577) (02998ea)
  • typescript-estree: add support for custom module resolution (#3516) (d48429d)

4.28.5 (2021-07-26)

Note: Version bump only for package @typescript-eslint/typescript-eslint

4.28.4 (2021-07-19)

Note: Version bump only for package @typescript-eslint/typescript-eslint

4.28.3 (2021-07-12)

Note: Version bump only for package @typescript-eslint/typescript-eslint

4.28.2 (2021-07-05)

Note: Version bump only for package @typescript-eslint/typescript-eslint

4.28.1 (2021-06-28)

Note: Version bump only for package @typescript-eslint/typescript-eslint

4.28.0 (2021-06-21)

Bug Fixes

  • eslint-plugin: [prefer-regexp-exec] factor in union types (#3434) (ac86a79)
  • experimental-utils: expand RuleTester config properties (#3557) (ffbb3cf)
  • experimental-utils: fix eslint-utils' negative predicates' return types (#3462) (1e6016b)
  • experimental-utils: fix eslint-utils' negative predicates' return types in ast-utils (#3461) (614b0a3)
  • experimental-utils: make keys for ReferenceTracker options optional (#3531) (a7fd7bb)

Features

  • experimental-utils: add only property to RuleTester types (#3555) (2a36e3e)
  • experimental-utils: expose ReferenceTracker.ESM (#3532) (4ac67c4)
  • experimental-utils: use mergable interface for settings property (#3556) (abfc19b)

4.27.0 (2021-06-14)

Bug Fixes

  • eslint-plugin: allow explicit any for no-unsafe-return (#3498) (b15a2b2)
  • typescript-estree: allow providing more one than one existing program in config (#3508) (4f1806e)
  • typescript-estree: support override modifier for parameter property (#3485) (33b9f69)

Features

  • ast-spec: specify LogicalExpression's operator type (#3497) (9e343fd)
  • ast-spec: specify PunctuatorToken's value type (#3496) (fdb1d81)
  • eslint-plugin: [prefer-literal-enum-member] add allowBitwiseExpressions option (#3515) (288092a)
  • typescript-estree: add opt-in inference for single runs and create programs for projects up front (#3512) (06c2d9b)
  • allow user to provide TS program instance in parser options (#3484) (e855b18)

4.26.1 (2021-06-07)

Bug Fixes

  • eslint-plugin: [prefer-includes] ignore option chaining before indexOfs (#3432) (bf0cddb)
  • eslint-plugin: fix doc url generation (#3475) (fc5f171), closes #3473

4.26.0 (2021-05-31)

Bug Fixes

  • eslint-plugin: [no-type-alias] consider type imports as alias types (#3433) (d4f0774)
  • generate library types for TypeScript v4.3 (#3460) (ed4776a), closes #3449

Features

  • eslint-plugin: [member-ordering] add callback as an ordering type of node (#3354) (d134b1f)
  • eslint-plugin: [space-infix-ops] Add support for Union and intersection of type declarations (#3360) (3d29323)
  • scope-manager: reduce generated lib file size (#3468) (258116b)

4.25.0 (2021-05-24)

Bug Fixes

  • corrected no-unsupported-browser-code in roadmap as unimplemented (#3407) (2319b0e)
  • experimental-utils: fix isAwaitKeyword predicate in ast-utils (#3290) (c15da67)

Features

  • typescript-estree: [TS4.3] support overrides on class members (#3429) (21d1b62)
  • typescript-estree: add support for getter/setter signatures on types (#3427) (b830b7f), closes #3272 #3272

4.24.0 (2021-05-17)

Bug Fixes

  • eslint-plugin: [no-shadow] fix static class method generics shadowing class generics (#3393) (b1e1c8a), closes #2592
  • eslint-plugin: [no-unsafe-*] special case handling for the empty map constructor with no generics (#3394) (cae4f4a), closes #2109

Features

  • eslint-plugin: [dot-notation] optionally allow square bracket notation where an index signature exists in conjunction with noPropertyAccessFromIndexSignature (#3361) (37ec2c2)

4.23.0 (2021-05-10)

Bug Fixes

  • scope-manager: fix visiting TSAsExpression in assignment (#3355) (87521a0)

Features

  • experimental-utils: Include getCwd() in RuleContext type (#3308) (2b75c11)
  • refactor to split AST specification out as its own module (#2911) (25ea953)

4.22.1 (2021-05-04)

Note: Version bump only for package @typescript-eslint/typescript-eslint

4.22.0 (2021-04-12)

Bug Fixes

  • eslint-plugin: [no-unsafe-argument] handle tuple types on rest arguments (#3269) (6f8cfe6)

Features

  • eslint-plugin: [prefer-regexp-exec] add autofix (#3207) (e2cbeef)

4.21.0 (2021-04-05)

Bug Fixes

  • eslint-plugin: [no-type-alias] consider keyof as an alias (#3242) (329ef02)
  • eslint-plugin: [no-unnecessary-type-assertion] correct bad fix for angle bracket assertion (#3244) (265a039)
  • eslint-plugin: [restrict-plus-operands] consider template literal types as strings (#3234) (ccfd68e)
  • eslint-plugin: [strict-boolean-expressions] account for truthy literals (#3236) (0913f40)
  • eslint-plugin: always ignore assignments in no-unnecessary-type-assertion (#3235) (0221476)

Features

  • eslint-plugin: [no-unsafe-argument] add rule (#3256) (b1aa7dc), closes #791
  • eslint-plugin: [no-unsafe-call][no-unsafe-member-access] improve report messages for this for noImplicitThis (#3199) (b1b26c4)

4.20.0 (2021-03-29)

Features

  • eslint-plugin: [space-infix-ops] support for class properties and type aliases (#3231) (5414bf2)
  • eslint-plugin: [type-annotation-spacing] handle space between ? and : (#3138) (40bdb0b)

4.19.0 (2021-03-22)

Bug Fixes

  • eslint-plugin: [member-delimiter-style] correct invalid fix for multiline with params on the same line (#3177) (7ad343b)
  • eslint-plugin: [promise-function-async] bad fixer with computed and literal methods (#3163) (e3a3ea0)
  • typescript-estree: [ts 4.2] add support for import type equal declaration (#3189) (6a25faf)

Features

  • eslint-plugin: [object-curly-spacing] support MappedType (#3176) (0557a43)
  • eslint-plugin: [unbound-method] improve error message (#3203) (5cc5d2e), closes #3201

4.18.0 (2021-03-15)

Bug Fixes

  • eslint-plugin: [explicit-module-boundary-types] fixes #2864 related to functions in nested object properties (#3178) (55e1fba)
  • eslint-plugin: [no-extran-class] allowWithDecorator should ignore other errors (#3160) (a148673)

Features

  • eslint-plugin: add package type declaration (#3164) (08b058a)

4.17.0 (2021-03-08)

Bug Fixes

  • eslint-plugin: [no-unnecessary-type-assertion] handle assignment (#3133) (cb22561)

Features

  • eslint-plugin: [strict-bool-expr] add fixes and suggestions (#2847) (3f9e9a1)

4.16.1 (2021-03-01)

Bug Fixes

  • typescript-estree: update TS version range (#3127) (0473674)

4.16.0 (2021-03-01)

Bug Fixes

  • eslint-plugin: [consistent-indexed-object-style] do not autofix if interface has extends (#3009) (b0475af)
  • eslint-plugin: [no-implied-eval] handle conditional expression (#3125) (8c65d30)
  • eslint-plugin: [no-unused-vars] don't report nested module declaration (#3119) (4ca5888)
  • eslint-plugin: [prefer-function-type] apply existing comments to the fixed code (#3094) (c32f803)
  • eslint-plugin: [unbound-method] allow super expressions in this assignments (#3010) (c65a139)
  • scope-manager: update libs for typescript 4.2 (#3118) (0336c79)

Features

  • TypeScript 4.2 syntax support (#3112) (2ebfb21)
  • eslint-plugin: [member-delimiter-style] Add an option 'multilineDetection' to treat types and interfaces as single line if the last member ends on the same line as the closing bracket (#2970) (cf86f42)
  • eslint-plugin: [prom-func-async] report only function head (#2872) (25f459c)
  • typescript-estree: throw custom error instead of plain object (#3011) (ae14bf5)

4.15.2 (2021-02-22)

Bug Fixes

  • typescript-estree: correct issues in AST definition (#3083) (509a117)
  • add missing intrinsic keyword node to AST (#3081) (409bf0b)
  • eslint-plugin: [no-var-requires] report when used in type assertion (#3074) (763a252)
  • correct test names on windows for semantic-diagnostics-enabled (#3060) (885780d)

4.15.1 (2021-02-15)

Bug Fixes

  • eslint-plugin: [explicit-module-boundary-types] check allowNames on function declarations and property methods (#3051) (0ade469)

4.15.0 (2021-02-08)

Bug Fixes

  • eslint-plugin: [no-extra-parens] handle ESLint 7.19.0 (#2993) (4615048)
  • eslint-plugin: [prefer-function-type] correct fixer when signature ends with a semi (#3002) (898dd39)
  • scope-manager: fix visiting of TSImportType (#3008) (ce4fcbf), closes #3006

Features

  • typescript-estree: improve logic used to escape string literals in jsx (#2995) (3cb3aad)

4.14.2 (2021-02-01)

Bug Fixes

  • eslint-plugin: [consistent-type-imports] incorrect handling of computed property type signatures (#2990) (58f2655), closes #2989
  • scope-manager: correctly reference generic parameters when decorator metadata is enabled (#2975) (7695ef3), closes #2972

4.14.1 (2021-01-25)

Bug Fixes

  • eslint-plugin: [sort-type-union-intersection-members] consider void as a nullish (#2944) (a241b25), closes #2940
  • scope-manager: fix incorrect handling of class decorators and class method default params (#2943) (e1eac83), closes #2941 #2942 #2751

4.14.0 (2021-01-18)

Features

  • add support for decorator metadata in scope analysis and in consistent-type-imports (#2751) (445e416), closes #2559
  • eslint-plugin: add object-curly-spacing rule (#2892) (32bd18d)

4.13.0 (2021-01-11)

Bug Fixes

Features

  • eslint-plugin: [sort-type-union-intersection-members] add nullish group (#2919) (5558f41)

4.12.0 (2021-01-04)

Bug Fixes

  • eslint-plugin: [comma-spacing] handle empty type params (#2915) (4d69fbb)

Features

  • eslint-plugin: add rule sort-type-union-intersection-members (#2913) (9092c04)

4.11.1 (2020-12-28)

Bug Fixes

  • eslint-plugin: [naming-convention] fix precedence of method and property meta selectors (#2877) (2f10e1a)

4.11.0 (2020-12-21)

Bug Fixes

  • eslint-plugin: [non-nullable-type-assertion-style] handle const assertion (#2881) (53dc34d)

Features

  • eslint-plugin: [prom-func-async] add automatic fix (#2845) (717e718)

4.10.0 (2020-12-14)

Bug Fixes

  • eslint-plugin: [naming-convention] fix wrong member of method and property meta selectors (#2856) (9a6c362)

Features

  • eslint-plugin: add rule non-nullable-type-assertion-style (#2624) (7eee44f)

4.9.1 (2020-12-07)

Bug Fixes

  • eslint-plugin: [method-signature-style] fix crash with methods without a return type (#2836) (fed89f2), closes #2834
  • eslint-plugin: [no-unused-vars] false-positive with class expressions (#2833) (aadb39f), closes #2831
  • eslint-plugin: [no-unused-vars] fix race condition between naming-convention and no-unused-vars (#2848) (ccb6b94), closes #2844

4.9.0 (2020-11-30)

Bug Fixes

  • eslint-plugin: [consistent-indexed-object-style] convert readonly index signature to readonly record (#2798) (29428a4)
  • eslint-plugin: [consistent-type-imports] crash when using both default and namespace in one import (#2778) (c816b84)
  • eslint-plugin: [explicit-module-boundary-types] ignore functions exported within typed object/array literals (#2805) (73a63ee)
  • eslint-plugin: [no-use-before-define] allow class references if they're within a class decorator (#2827) (050023a), closes #2842
  • eslint-plugin: [triple-slash-reference] fix crash with external module reference (#2788) (32b1b68)
  • scope-manager: fix assertion assignments not being marked as write references (#2809) (fa68492), closes #2804
  • typescript-estree: add default value for parserOptions.projectFolderIgnoreList and deduplicate resolved projects (#2819) (bf904ec), closes #2418 #2814

Features

  • eslint-plugin: [naming-convention] add requireDouble, allowDouble, allowSingleOrDouble options for underscores (#2812) (dd0576a)
  • eslint-plugin: [naming-convention] add requiresQuotes modifier (#2813) (6fc8409), closes #2761 #1483
  • eslint-plugin: [naming-convention] add modifier unused (#2810) (6a06944)
  • eslint-plugin: [naming-convention] add modifiers exported, global, and destructured (#2808) (fb254a1), closes #2239 #2512 #2318 #2802
  • eslint-plugin: [naming-convention] allow destructured modifier for parameter selector (#2829) (525d2ff), closes #2828
  • eslint-plugin: [naming-convention] split property and method selectors into more granular classXXX, objectLiteralXXX, typeXXX (#2807) (665b6d4), closes #1477 #2802
  • eslint-plugin: [no-unused-vars] fork the base rule (#2768) (a8227a6), closes #2782 #2714 #2648
  • eslint-plugin: [unbound-method] add support for methods with a this: void parameter (#2796) (878dd4a)

4.8.2 (2020-11-23)

Bug Fixes

  • eslint-plugin: [prefer-literal-enum-member] allow pure template literal strings (#2786) (f3bf6a1)
  • typescript-estree: fix type-only regression for consumers not yet on TS 4.1 (#2789) (50a46c6)

4.8.1 (2020-11-17)

Bug Fixes

  • eslint-plugin: [no-unnecessary-condition] false positive when array predicate returns unknown (#2772) (111c244)
  • typescript-estree: parseWithNodeMaps returning empty maps (#2773) (3e4a0ed)

4.8.0 (2020-11-16)

Bug Fixes

  • eslint-plugin: [consistent-type-definitions] remove fixer when the interface is within a global module declaration (#2739) (2326238)
  • eslint-plugin: [no-unsafe-member-access] ignore MemberExpression's whose parents are either TSClassImplements or TSInterfaceHeritage (#2753) (535db3b)

Features

4.7.0 (2020-11-09)

Bug Fixes

  • eslint-plugin: [array-type] parenthesize ReadonlyArray fix (#2747) (83385ac)
  • eslint-plugin: [no-extra-non-null-assertion] false positive with non-nullable computed key (#2737) (e82698c)

Features

4.6.1 (2020-11-02)

Bug Fixes

  • eslint-plugin: [consistent-indexed-object-style] fix wrong autofix behaviour with generics (#2722) (73d9713)
  • eslint-plugin: [no-shadow] ignore global module augmentation (#2729) (d8c67a5)

4.6.0 (2020-10-26)

Bug Fixes

  • eslint-plugin: [method-signature-style] correct fixer for overloads in an object literal type (#2708) (0763913)
  • eslint-plugin: [method-signature-style] don't auto-fix interfaces within namespaces (#2678) (e012049)
  • eslint-plugin: [prefer-string-starts-ends-with] Check negative indices in the second position for slice (#2696) (66e9c6e)

Features

  • eslint-plugin: [ban-types] support banning [] (#2704) (ef8b5a7), closes #2582
  • eslint-plugin: add no-unnecessary-type-constraint rule (#2516) (880ac75)
  • eslint-plugin: add extension rule space-infix-ops (#2593) (343d20d)

4.5.0 (2020-10-19)

Bug Fixes

  • eslint-plugin: [array-type] fix issues with readonly option (#2667) (63d1d81)
  • eslint-plugin: [lines-between-class-members] fix typo in schema (#2681) (a2a2514)
  • eslint-plugin: [naming-convention] check bodyless function parameters (#2675) (c505863)
  • eslint-plugin: [no-invalid-this] allow "this" in class property definitions (#2685) (dccb6ee)
  • eslint-plugin: [no-misused-promises] False negative in LogicalExpression (#2682) (30a6951), closes #2544
  • eslint-plugin: [no-unnecessary-type-assertion] correct fixer for vue files (#2680) (55111af)
  • eslint-plugin: [return-await] do not auto-fix when type is any/unknown (#2671) (d690c8d)
  • parser: minor fix regexp, map-filter to reduce (#2684) (f1329f6)

Features

  • eslint-plugin: [dot-notation] add allowProtectedClassPropertyAccess option (#2622) (bbc9e35)
  • eslint-plugin: [prefer-readonly-parameter-types] add ignoreInferredTypes option (#2668) (91010e8)
  • eslint-plugin: [restrict-plus-operands] add intersection type determination logic (#2628) (da71362)
  • typescript-estree: add flag EXPERIMENTAL_useSourceOfProjectReferenceRedirect (#2669) (90a5878)

4.4.1 (2020-10-12)

Bug Fixes

  • eslint-plugin: [ban-ts-comment] support block comments (#2644) (9c3c686)
  • eslint-plugin: [ban-types] allow banning types with specific parameters (#2662) (77732a2)
  • eslint-plugin: [consistent-type-assertions] check type assertion in jsx props (#2653) (393e925)
  • eslint-plugin: [no-duplicate-imports] distinguish member, default (#2637) (c71f423)
  • eslint-plugin: [no-throw-literal] false positive with logical expressions (#2645) (57aa6c7)
  • eslint-plugin: [no-unused-vars] fix false positives for duplicated names in namespaces (#2659) (0d696c7)
  • eslint-plugin: [no-use-before-define] correctly handle typeof type references (#2623) (8e44c78)
  • scope-manager: don't create a variable for global augmentation (#2639) (6bc9325)

4.4.0 (2020-10-05)

Features

  • eslint-plugin: add consistent-indexed-object-style rule (#2401) (d7dc108)
  • eslint-plugin: add extension rule no-duplicate-imports (#2609) (498f397)

4.3.0 (2020-09-28)

Bug Fixes

  • eslint-plugin: added safe getTypeOfPropertyOfType wrapper (#2567) (7cba2de)
  • experimental-utils: treat RuleTester arrays as readonly (#2601) (8025777)

Features

  • eslint-plugin: [no-invalid-void-type] add option to allow this: void (#2481) (ddf5660)

4.2.0 (2020-09-21)

Bug Fixes

  • eslint-plugin: [naming-convention] ignore properties inside object patterns (#2566) (53a3cbc)
  • eslint-plugin: [prefer-ts-expect-error] support block comments (#2541) (c6f72fb)
  • scope-manager: correct analysis of inferred types in conditional types (#2537) (4f660fd)

Features

  • eslint-plugin: add extension rule comma-dangle (#2416) (f7babcf)

4.1.1 (2020-09-14)

Bug Fixes

  • eslint-plugin: [naming-convention] allow an array of selectors with types and modifiers (#2415) (7ca54c3)
  • eslint-plugin: [no-implied-eval] handle the Function type (#2435) (e1401dc)
  • eslint-plugin: [no-unused-vars] better handling for declared modules (#2553) (02d72d4), closes #2523
  • eslint-plugin: [no-use-before-define] false positive for function type arguments (#2554) (189162d), closes #2527
  • eslint-plugin: [prefer-function-type] handle this return (#2437) (7c6fcee)
  • eslint-plugin: [return-await] don't error for in-try-catch if the return is in a catch without a finally (#2356) (efdd521)
  • types: artificial fix needed to trigger release (b577daf)
  • types: artificial fix needed to trigger release (fc62ba8)

4.1.0 (2020-09-07)

Bug Fixes

  • eslint-plugin: [explicit-module-boundary-types] cyclical reference infinite recursion crash (#2482) (8693653)
  • eslint-plugin: [no-unused-vars] correct detection of unused vars in a declared module with export = (#2505) (3d07a99)
  • eslint-plugin: [no-unused-vars] properly handle ambient declaration exports (#2496) (4d3ce5f)
  • eslint-plugin: [no-use-before-define] false positive with jsx pragma reference (#2503) (5afeeab), closes #2502
  • eslint-plugin: [typedef] false positive for rest parameter with array destructuring (#2441) (2ada5af)
  • eslint-plugin: handle missing message IDs in eslint v5/v6 (#2461) (ffdfade)
  • scope-manager: add const as a global type variable (#2499) (eb3f6e3)
  • scope-manager: correctly handle inferred types in nested type scopes (#2497) (95f6bf4)
  • scope-manager: don't create references for intrinsic JSX elements (#2504) (cdb9807)
  • scope-manager: fallback to lib 'esnext' or 'es5' when ecma version is unsupported (#2474) (20a7dcc)
  • scope-manager: support rest function type parameters (#2491) (9d8b4c4), closes #2449
  • scope-manager: support tagged template string generic type parameters (#2492) (a2686c0)
  • scope-manager: support type predicates (#2493) (a40f54c), closes #2462
  • scope-manager: treat type imports as both values and types (#2494) (916e95a), closes #2453

Features

  • eslint-plugin: [no-shadow] add option ignoreFunctionTypeParameterNameValueShadow (#2470) (bfe255f)
  • eslint-plugin: add extension rule no-loop-func (#2490) (36305df)
  • scope-manager: add support for JSX scope analysis (#2498) (f887ab5), closes #2455 #2477

4.0.1 (2020-08-31)

Bug Fixes

4.0.0 (2020-08-31)

Please see the release notes for v4.0.0

Bug Fixes

  • eslint-plugin: [no-shadow] fix false-positive on enum declaration (#2374) (9de669f)
  • eslint-plugin: [no-unused-vars] handle TSCallSignature (#2336) (c70f54f)
  • correct decorator traversal for AssignmentPattern (#2375) (d738fa4)
  • scope-manager: correct analysis of abstract class properties (#2420) (cd84549)
  • typescript-estree: correct ChainExpression interaction with parentheses and non-nulls (#2380) (762bc99)

Features

  • consume new scope analysis package (#2039) (3be125d)
  • support ESTree optional chaining representation (#2308) (e9d2ab6)
  • eslint-plugin: [ban-ts-comment] change default for ts-expect-error to allow-with-description (#2351) (a3f163a), closes #2146
  • eslint-plugin: [no-unnecessary-condition][strict-boolean-expressions] add option to make the rules error on files without strictNullChecks turned on (#2345) (9273441)
  • eslint-plugin: [typedef] remove all defaults (#2352) (a9cd6fb)
  • eslint-plugin: add consistent-type-imports rule (#2367) (58b1c2d)
  • typescript-estree: switch to globby (#2418) (3a7ec9b), closes #2398

BREAKING CHANGES

  • typescript-estree: - removes the ability to supply a RegExp to projectFolderIgnoreList, and changes the meaning of the string value from a regex to a glob.
    • Removed decorators property from several Nodes that could never semantically have them (FunctionDeclaration, TSEnumDeclaration, and TSInterfaceDeclaration)
  • Removed AST_NODE_TYPES.Import. This is a minor breaking change as the node type that used this was removed ages ago.

  • eslint-plugin: Default rule options is a breaking change.

3.10.1 (2020-08-25)

Bug Fixes

  • eslint-plugin: [no-unnecessary-condition] correct regression with unary negations (#2422) (d1f0887), closes #2421

3.10.0 (2020-08-24)

Bug Fixes

  • eslint-plugin: [explicit-module-boundary-types] ignore abstract setters (#2410) (3764248)
  • eslint-plugin: [explicit-module-boundary-types] ignore all bodyless setters (#2413) (a53f8c6)
  • eslint-plugin: [no-unnecessary-condition] better handling for unary negation (#2382) (32fe2bb)
  • typescript-estree: ts.NamedTupleMember workaround for <TS4.0 (#2405) (b62331a)

Features

  • eslint-plugin: add no-implicit-any-catch rule (#2202) (fde89d4)
  • typescript-estree: update allowed TS version range (#2419) (e6be621)

3.9.1 (2020-08-17)

Bug Fixes

  • eslint-plugin: [no-unnecessary-condition] fix false positive with nullish coalescing (#2385) (092c969)
  • eslint-plugin: [prefer-includes] don't auto fix when test method's argument type doesn't have an 'includes' method (#2391) (71c4c72)

3.9.0 (2020-08-10)

Bug Fixes

  • eslint-plugin: [no-throw-literal] support type assertions (#2354) (470174a)

Features

  • eslint-plugin: [no-unsafe-assignment/return] allow assigning any => unknown (#2371) (e7528e6)
  • typescript-estree: support TSv4 labelled tuple members (#2378) (00d84ff)

3.8.0 (2020-08-03)

Bug Fixes

  • eslint-plugin: [no-implied-eval] don't report when Function is imported (#2348) (fa169e7)
  • eslint-plugin: [no-unsafe-assignment] fix typo in message (#2347) (2027bb1)

Features

  • eslint-plugin: [naming-convention] allow specifying an array of selectors (#2335) (3ef6bd5)
  • eslint-plugin: add prefer-enum-initializers rule (#2326) (4f38ea3)

3.7.1 (2020-07-27)

Bug Fixes

  • eslint-plugin: [adjacent-overload-signatures] fix false positive on call signatures and a method named call (#2313) (30fafb0)
  • eslint-plugin: [no-extra-parens] stop reporting on calling generic functions with one argument and type parameters containing parentheses (#2319) (616a841)
  • typescript-estree: correct AST regression introduced by TS4.0 upgrade (#2316) (d7fefba)

3.7.0 (2020-07-20)

Features

  • eslint-plugin: [naming-convention] allow selecting only const variables (#2291) (156d058)
  • eslint-plugin: [no-empty-function] add decoratedFunctions option (#2295) (88f08f4)
  • typescript-estree: support short-circuiting assignment operators (#2307) (2c90d9f)
  • typescript-estree: support type annotations on catch clauses (#2306) (b5afe9c)

3.6.1 (2020-07-13)

Bug Fixes

  • eslint-plugin: [no-unnecessary-condition] handle computed member access (#2288) (3a187ca)
  • eslint-plugin: [prefer-literal-enum-member] allow negative numbers (#2277) (00ac9c3)
  • eslint-plugin: [space-before-function-paren] incorrect handling of abstract methods (#2275) (ced6591), closes #2274
  • eslint-plugin: [switch-exhaustiveness-check] handle special characters in enum keys (#2207) (98ab010)

3.6.0 (2020-07-06)

Bug Fixes

  • eslint-plugin: [no-namespace] allow namespaces in nested declarations with allowDeclarations (#2238) (c1df669)
  • eslint-plugin: [space-before-function-paren] handle abstract functions (#2199) (88a3edf)

Features

  • eslint-plugin: add rule prefer-literal-enum-member (#1898) (fe2b2ec)

3.5.0 (2020-06-29)

Bug Fixes

  • eslint-plugin: [naming-convention] support unicode in regex (#2241) (5fdd21a)
  • typescript-estree: forward compatibility for new compound assignment operators (#2253) (ba41680)

Features

3.4.0 (2020-06-22)

Bug Fixes

  • eslint-plugin: [no-base-to-string] handle intersection types (#2170) (9cca3a9)
  • eslint-plugin: [unbound-method] handling destructuring (#2228) (c3753c2)
  • experimental-utils: correct types for TS versions older than 3.8 (#2217) (5e4dda2)
  • experimental-utils: getParserServices takes a readonly context (#2235) (26da8de)

Features

  • eslint-plugin: [no-unnecessary-boolean-literal-compare] add option to check nullable booleans (#1983) (c0b3057)
  • eslint-plugin: add extension rule no-loss-of-precision (#2196) (535b0f2)

3.3.0 (2020-06-15)

Bug Fixes

  • eslint-plugin: [no-unused-expressions] handle ternary and short-circuit options (#2194) (ee9f100)
  • typescript-estree: handle TS4.0 breaking change in TupleType (#2197) (5d68129)

Features

  • eslint-plugin: [naming-convention] better error message and docs for prefix/suffix (#2195) (a2ffe55)

3.2.0 (2020-06-08)

Bug Fixes

  • eslint-plugin: [explicit-module-boundary-types] dont report return type errors on constructor overloads (#2158) (53232d7)
  • eslint-plugin: [explicit-module-boundary-types] handle bodyless arrow functions with explicit return types that return functions (#2169) (58db655)
  • eslint-plugin: [explicit-module-boundary-types] handle nested functions and functions expressions in a typed variable declaration (#2176) (6ff450d)
  • eslint-plugin: [no-extra-non-null-assertion] dont report for assertions not followed by the optional chain (#2167) (e4c1834)
  • eslint-plugin: [no-unnecessary-conditionals] Handle comparison of generics and loose comparisons with undefined values (#2152) (c86e2a2)
  • eslint-plugin: [prefer-optional-chain] handling first member expression (#2156) (de18660)
  • eslint-plugin: [return-await] correct handling of ternaries (#2168) (fe4c0bf)

Features

  • eslint-plugin: [naming-convention] put identifiers in quotes in error messages (#2182) (fc61932), closes #2178
  • eslint-plugin: [require-array-sort-compare] add ignoreStringArrays option (#1972) (6dee784)
  • eslint-plugin: add rule ban-tslint-comment (#2140) (43ee226)
  • eslint-plugin: add rule no-confusing-non-null-assertion (#1941) (9b51c44)

3.1.0 (2020-06-01)

Bug Fixes

  • eslint-plugin: [explicit-module-boundary-types] don't check returned functions if parent function has return type (#2084) (d7d4eeb)
  • eslint-plugin: [no-unnecessary-condition] handle comparison of any, unknown and loose comparisons with nullish values (#2123) (1ae1d01)
  • eslint-plugin: [no-unnecessary-condition] improve optional chain handling (#2111) (9ee399b)
  • eslint-plugin: [no-unnecessary-condition] improve optional chain handling 2 - electric boogaloo (#2138) (c87cfaf)
  • eslint-plugin: [no-unused-expressions] ignore import expressions (#2130) (e383691)
  • eslint-plugin: [no-var-requires] false negative for TSAsExpression and MemberExpression (#2139) (df95338)
  • experimental-utils: downlevel type declarations for versions older than 3.8 (#2133) (7925823)

Features

  • eslint-plugin: [ban-ts-comments] add "allow-with-description" option (#2099) (8a0fd18)
  • eslint-plugin: [ban-types] allow selective disable of default options with false value (#2137) (1cb8ca4)
  • eslint-plugin: [explicit-module-boundary-types] improve accuracy and coverage (#2135) (caaa859)

3.0.2 (2020-05-27)

Bug Fixes

3.0.1 (2020-05-25)

Bug Fixes

  • eslint-plugin: [naming-convention] handle no options correctly (#2095) (fd7d02b)
  • eslint-plugin: [no-throw-literal] handle intersection and union types (#2085) (cae037f)
  • eslint-plugin: [unbound-method] fix crash due to missing Intl (#2090) (f2fa82c)
  • experimental-utils: export CLIEngine & ESLint (#2083) (014341b)
  • typescript-estree: handle BigInt with _ numeric separator (#2067) (66f1627)
  • typescript-estree: mark TS 3.8 and 3.9 as "supported" (#2057) (5eedbff), closes #1436 #1436

3.0.0 (2020-05-21)

Please see the release notes for v3.0.0

Bug Fixes

  • eslint-plugin: [dot-notation] fix typo in schema (#2040) (242328f)
  • eslint-plugin: correct parser peerDep version (fe59f69)
  • experimental-utils: add back SourceCode.isSpaceBetweenTokens (ae82ea4)
  • typescript-estree: remove now defunct Import node type (f199cbd)
  • typescript-estree: use TSEmptyBodyFunctionExpression for body-less nodes (#1289) (82e7163)

Features

  • add index files to parser and typescript-estree (3dfc46d)
  • eslint-plugin: [no-floating-promises] ignore void operator by default (#2003) (3626a67)
  • eslint-plugin: [no-unnecessary-condition] remove checkArrayPredicates and always check it (#1579) (bfd9b60)
  • eslint-plugin: [no-unnecessary-condition] report when non-nullish is compared to null/undefined (#1659) (7fa9060)
  • eslint-plugin: [prefer-nullish-coalescing][prefer-optional-chain] remove unsafe fixers (52b6085)
  • eslint-plugin: [restrict-template-expressions] allowNumber: true by default (#2005) (643ec24)
  • eslint-plugin: [restrict-template-expressions] rename allowNullable to allowNullish (#2006) (264b017)
  • experimental-utils: upgrade eslint types for v7 (#2023) (06869c9)
  • bump minimum required TS version (#2004) (7ad4d7c)
  • upgrade to ESLint v7 (#2022) (208de71)
  • eslint-plugin: [ban-types] rework default options (#848) (8e31d5d)
  • eslint-plugin: [no-unnecessary-condition] remove option ignoreRHS (#1163) (ee8dd8f)
  • eslint-plugin: [strict-boolean-expression] rework options (#1631) (cd14482)
  • eslint-plugin: delete deprecated rules (#2002) (da0aec2)
  • eslint-plugin: eslint-recommended: disable no-func-assign (#984) (ae9b8a9)
  • eslint-plugin: eslint-recommended: disable no-obj-calls (#1000) (b9ca14c)
  • eslint-plugin: update eslint-recommended set (#1996) (9a96e18)
  • eslint-plugin: update recommended sets (#2001) (0126b4f)
  • typescript-estree: align nodes with estree 2020 (#1389) (aff5b62)
  • typescript-estree: align optional fields (#1429) (0e0010f)
  • drop support for node v8 (#1997) (b6c3b7b)
  • typescript-estree: always return parserServices (#716) (5b23443)
  • typescript-estree: handle 3.9's non-null assertion changes (#2036) (06bec63)

2.34.0 (2020-05-18)

Bug Fixes

  • typescript-estree: fix handling of range/loc removal (#2028) (ce344d9)

Features

  • eslint-plugin: [no-invalid-void-type] allow union of void and allowInGenericTypeArguments (#1960) (1bc105a)
  • eslint-plugin: [restrict-template-expressions] improve error message (#1926) (1af59ba)
  • experimental-utils: add suggestion property for rule modules (#2033) (f42a5b0)

2.33.0 (2020-05-12)

Bug Fixes

  • experimental-utils: remove accidental dep on json-schema (#2010) (1875fba)

Features

  • eslint-plugin: add extension rule lines-between-class-members (#1684) (08f93e6)

2.32.0 (2020-05-11)

Bug Fixes

  • eslint-plugin: [no-base-to-string] support boolean in unions (#1979) (6987ecc)
  • eslint-plugin: [no-type-alias] handle readonly types in aliases (#1990) (56d9870)
  • eslint-plugin: [no-unused-expressions] inherit messages from base rule (#1992) (51ca404)

Features

2.31.0 (2020-05-04)

Bug Fixes

  • eslint-plugin: [dot-notation] handle missing declarations (#1947) (383f931)
  • eslint-plugin: [method-signature-style] fix overloaded methods to an intersection type (#1966) (7f3fba3)
  • eslint-plugin: [return-await] await in a normal function (#1962) (f82fd7b)
  • eslint-plugin: [unbound-method] false positives for unary expressions (#1964) (b35070e)
  • eslint-plugin: no-base-to-string boolean expression detect (#1969) (f78f13a)

Features

  • eslint-plugin: [member-ordering] add decorators support (#1870) (f7ec192)
  • eslint-plugin: [prefer-optional-chain] added option to convert to suggestion fixer (#1965) (2f0824b)
  • eslint-plugin: new extended rule 'no-invalid-this' (#1823) (b18bc35)
  • eslint-plugin-internal: add rule no-poorly-typed-ts-props (#1949) (56ea7c9)
  • experimental-utils: expose our RuleTester extension (#1948) (2dd1638)

2.30.0 (2020-04-27)

Bug Fixes

  • eslint-plugin: [prefer-string-starts-ends-with] check for negative start index in slice (#1920) (ed2bd60)
  • eslint-plugin: fix no-base-to-string boolean literal check (#1850) (2f45e99)

Features

  • eslint-plugin: add extension rule dot-notation (#1867) (a85c3e1)
  • eslint-plugin: create no-invalid-void-type rule (#1847) (f667ff1)
  • experimental-utils: allow rule options to be a readonly tuple (#1924) (4ef6788)

2.29.0 (2020-04-20)

Bug Fixes

  • eslint-plugin: [no-base-to-string] soft remove ignoreTaggedTemplateExpressions option (#1916) (369978e)

Features

  • eslint-plugin: [no-floating-promise] add option to ignore IIFEs (#1799) (cea51bf)
  • eslint-plugin: [restrict-template-expressions] add support for intersection types (#1803) (cc70e4f)
  • eslint-plugin: add extension rule init-declarations (#1814) (b01f5e7)
  • eslint-plugin: add extension rule keyword-spacing (#1739) (c5106dd)

2.28.0 (2020-04-13)

Bug Fixes

  • eslint-plugin: [method-signature-style] handle multiline params (#1861) (5832a86)
  • eslint-plugin: [no-empty-interface] use suggestion fixer for ambient contexts (#1880) (62b2278)
  • eslint-plugin: [unbound-method] false positive on property function initializer (#1890) (f1c3b18)
  • eslint-plugin: [unbound-method] ignore assignments to methods (#1736) (6b4680b)
  • eslint-plugin: no-empty-interface autofix (#1865) (829a2f7), closes #1864
  • eslint-plugin: use isTypeArrayTypeOrUnionOfArrayTypes util for checking if type is array (#1728) (05030f8)

Features

  • eslint-plugin: [ban-ts-comment] support ts-expect-error (#1706) (469cff3)
  • eslint-plugin: [consistent-type-assertions] always allow const assertions (#1713) (af2c00d)
  • eslint-plugin: [explicit-function-return-type] add option to allow concise arrows that start with void (#1732) (2e9c202)
  • eslint-plugin: [explicit-module-boundary-types] add optio… (#1778) (3eee804)
  • eslint-plugin: [no-base-to-string] add option to ignore tagged templates (#1763) (f5edb99)
  • eslint-plugin: [restrict-template-expressions] add option allowAny (#1762) (d44c0f9)
  • eslint-plugin: add rule prefer-reduce-type-parameter (#1707) (c92d240)
  • eslint-plugin: add rule prefer-ts-expect-error (#1705) (7021f21)
  • eslint-plugin: add rule no-unsafe-assignment (#1694) (a49b860)

2.27.0 (2020-04-06)

Bug Fixes

  • eslint-plugin: [no-throw-literal] fix crash caused by getBaseTypes (#1830) (9d53c76)
  • eslint-plugin: [no-unsafe-call] fix incorrect selector (#1826) (8ec53a3)
  • eslint-plugin: [require-await] handle async generators (#1782) (9642d9d)
  • eslint-plugin: no-explicit-any constructor functions (& mo… (#1711) (ab8572e)
  • typescript-estree: add support for TS3.9 extra file extensions (#1833) (1f0ff41)

Features

  • eslint-plugin: new rule method-signature-style (#1685) (c49d771)
  • eslint-plugin: sort members alphabetically (#263) (485e902)
  • eslint-plugin-internal: add plugin-test-formatting rule (#1821) (9b0023a)
  • experimental-utils: add types for suggestions from CLIEngine (#1844) (7c11bd6)
  • experimental-utils: update eslint types to match v6.8 (#1846) (16ce74d)

2.26.0 (2020-03-30)

Bug Fixes

  • eslint-plugin: [no-explicit-any] error with ignoreRestArgs (#1796) (638d84d)
  • eslint-plugin: [no-unsafe-call] allow import expressions (#1800) (4fa7107)
  • eslint-plugin: [no-unsafe-return] error with <TS3.7 (#1815) (f3160b4)

Features

  • eslint-plugin-tslint: support tslint 6 (#1809) (7d963fd)
  • typescript-estree: add option to ignore certain folders from glob resolution (#1802) (1e29e69)

2.25.0 (2020-03-23)

Bug Fixes

  • only run publish_canary_version on master (3814d4e)
  • eslint-plugin: [quotes] false positive with backtick in import equals statement (#1769) (199863d)
  • eslint-plugin: fix message of no-base-to-string (#1755) (6646959)
  • eslint-plugin-tslint: fix tslintConfig memoization key (#1719) (abf1a2f), closes typescript-eslint#1692
  • typescript-estree: export * regression from 133f622f (#1751) (09d8afc)

Features

  • eslint-plugin: [no-unnec-type-assertion] allow const assertions (#1741) (f76a1b3)
  • eslint-plugin: [no-unnecessary-condition] ignore basic array indexing false positives (#1534) (2b9603d)
  • eslint-plugin: add class-literal-property-style rule (#1582) (b2dbd89)
  • experimental-utils: expose ast utility functions (#1670) (3eb5d45)

2.24.0 (2020-03-16)

Bug Fixes

  • typescript-estree: unnecessary program updates by removing timeout methods (#1693) (2ccd66b)

Features

  • typescript-estree: support 3.8 export * as ns (#1698) (133f622)

2.23.0 (2020-03-09)

Bug Fixes

  • eslint-plugin: [prefer-readonly-parameter-types] handle recursive types (#1672) (e5db36f), closes #1665
  • eslint-plugin: [type-annotation-spacing] handle constructor types (#1664) (fbf1640), closes #1663
  • eslint-plugin: fix autofixer for computed properties (#1662) (ba22ea7)
  • eslint-plugin: fix placeholder in ban-ts-comment (#1703) (144345c)

Features

  • eslint-plugin: [no-unsafe-call] support tagged templates (#1680) (55a58ff)
  • eslint-plugin: [no-unsafe-member-access] report any typed… (#1683) (1543117)
  • eslint-plugin: add rule no-unsafe-call (#1647) (91423e4)
  • eslint-plugin: add rule no-unsafe-member-access (#1643) (608a750)
  • eslint-plugin: add rule no-unsafe-return (#1644) (cfc3ef1)
  • typescript-estree: support 3.8 import/export type (#1697) (625d603)

2.22.0 (2020-03-02)

Bug Fixes

  • eslint-plugin: [ban-types] add option extendDefaults (#1379) (ae7f7c5)
  • eslint-plugin: [default-param-last] handle param props (#1650) (3534c6e)
  • eslint-plugin: [no-implied-eval] correct logic for ts3.8 (#1652) (33e3e6f)

Features

  • eslint-plugin: [explicit-member-accessibility] autofix no-public (#1548) (dd233b5)
  • eslint-plugin: [typedef] add variable-declaration-ignore-function (#1578) (fc0a55e)
  • eslint-plugin: add new no-base-to-string rule (#1522) (8333d41)
  • eslint-plugin: add prefer-readonly-parameters (#1513) (3be9854)
  • eslint-plugin: additional annotation spacing rules for va… (#1496) (b097245)

2.21.0 (2020-02-24)

Bug Fixes

  • eslint-plugin: [embt] ignore JSX callbacks (#1630) (4d45b33)
  • eslint-plugin: [no-floating-promises] handle finally callback (#1620) (1aa7135)
  • eslint-plugin: [typedef] allow array/object destructuring in for/of (#1570) (660bace)
  • typescript-estree: process.stdout can be undefined (#1619) (0d8e87e)

Features

  • eslint-plugin: [require-await] add --fix support (#1561) (9edd863)

2.20.0 (2020-02-17)

Features

  • eslint-plugin: [ban-types] allow banning null and undefined (#821) (0b2b887)
  • eslint-plugin: [strict-boolean-expressions] refactor, add clearer error messages (#1480) (db4b530)

2.19.2 (2020-02-10)

Note: Version bump only for package @typescript-eslint/typescript-eslint

2.19.1 (2020-02-10)

Bug Fixes

  • eslint-plugin: [unbound-method] blacklist a few unbound natives (#1562) (4670aab)
  • typescript-estree: ts returning wrong file with project references (#1575) (4c12dac)

2.19.0 (2020-02-03)

Bug Fixes

  • eslint-plugin: [embt] fix allowTypedFunctionExpressions (#1553) (9e7d161)
  • eslint-plugin: [require-await] improve performance (#1536) (45ae0b9)
  • typescript-estree: fix regression introduced in #1525 (#1543) (bec4572)
  • typescript-estree: persisted parse and module none (#1516) (7c70323)

Features

  • eslint-plugin: [no-extra-non-null-assert] add fixer (#1468) (54201ab)
  • eslint-plugin: [no-float-prom] fixer + msg for ignoreVoid (#1473) (159b16e)
  • eslint-plugin: [unbound-method] support bound builtins (#1526) (0a110eb)
  • eslint-plugin: add extension [no-dupe-class-members] (#1492) (b22424e)
  • eslint-plugin: add no-unnecessary-boolean-literal-compare (#242) (6bebb1d)
  • eslint-plugin: add switch-exhaustiveness-check rule (#972) (9e0f6dd)
  • eslint-plugin: support negative matches for filter (#1517) (b24fbe8)

2.18.0 (2020-01-27)

Bug Fixes

  • eslint-plugin: [explicit-module-boundary-types] false positive for returned fns (#1490) (5562ad5)
  • improve token types and add missing type guards (#1497) (ce41d7d)
  • eslint-plugin: [naming-convention] fix filter option (#1482) (718cd88)
  • eslint-plugin: fix property access on undefined error (#1507) (d89e8e8)
  • experimental-utils: widen type of settings property (#1527) (b515e47)
  • typescript-estree: error on unexpected jsdoc nodes (#1525) (c8dfac3)
  • typescript-estree: fix identifier tokens typed as Keyword (#1487) (77a1caa)

Features

  • eslint-plugin: add comma-spacing (#1495) (1fd86be)
  • eslint-plugin: add new rule prefer-as-const (#1431) (420db96)
  • eslint-plugin: create ban-ts-comment rule (#1361) (2a83d13)
  • eslint-plugin-internal: add prefer-ast-types-enum (#1508) (c3d0a3a)
  • experimental-utils: make RuleMetaData.docs optional (#1462) (cde97ac)
  • parser: clean up scope-analysis types (#1481) (4a727fa)

2.17.0 (2020-01-20)

Bug Fixes

  • eslint-plugin: [naming-convention] handle empty array-pattern (#1450) (4726605)
  • eslint-plugin: [unbound-method] handling of logical expr (#1440) (9c5b857)
  • eslint-plugin: set default-param-last as an extension rule (#1445) (b5ef704)
  • typescript-estree: correct type of ArrayPattern.elements (#1451) (62e4ca0)

Features

  • eslint-plugin: [naming-convention] allow not check format (#1455) (61eb434)
  • eslint-plugin: [naming-convention] correct example (#1455) (60683d7)
  • eslint-plugin: [no-extra-!-assert] flag ?. after !-assert (#1460) (58c7c25)
  • eslint-plugin: add explicit-module-boundary-types rule (#1020) (bb0a846)
  • eslint-plugin: add no-non-null-asserted-optional-chain (#1469) (498aa24)
  • experimental-utils: expose getParserServices from utils (#1448) (982c8bc)

2.16.0 (2020-01-13)

Bug Fixes

  • eslint-plugin: [no-magic-numbers] handle UnaryExpression for enums (#1415) (852fc31)
  • eslint-plugin: [no-unnec-type-assert] handle JSX attributes (#1002) (3c5659b)
  • eslint-plugin: handle error classes using generics (#1428) (b139540)
  • typescript-estree: fix persisted parse for relative paths (#1424) (9720d2c)
  • typescript-estree: parsing of deeply nested new files in new folder (#1412) (206c94b)
  • typescript-estree: resolve path relative to tsconfigRootDir (#1439) (c709056)

Features

  • eslint-plugin: [no-unnec-cond] array predicate callbacks (#1206) (f7ad716)
  • eslint-plugin: add default-param-last rule (#1418) (a37ff9f)
  • eslint-plugin: add rule naming-conventions (#1318) (9eab26f)
  • typescript-estree: add parserOption to turn on debug logs (#1413) (25092fd)
  • typescript-estree: add strict type mapping to esTreeNodeToTSNodeMap (#1382) (d3d70a3)

2.15.0 (2020-01-06)

Bug Fixes

  • eslint-plugin: crash in no-unnecessary-type-arguments (#1401) (01c939f)
  • typescript-estree: correct persisted parse for windows (#1406) (1a42f3d)

Features

  • eslint-plugin: [strict-bool-expr] add allowSafe option (#1385) (9344233)
  • eslint-plugin: add no-implied-eval (#1375) (254d276)

2.14.0 (2019-12-30)

Bug Fixes

  • eslint-plugin: type assertion in rule no-extra-parens (#1376) (f40639e)
  • typescript-estree: visit typeParameters in OptionalCallExpr (#1377) (cba6a2a)

Features

  • add internal eslint plugin for repo-specific lint rules (#1373) (3a15413)

2.13.0 (2019-12-23)

Bug Fixes

  • eslint-plugin: [quotes] ignore backticks for Enum members (#1355) (e51048c)
  • eslint-plugin: [type-annotation-spacing] typo in messages (#1354) (82e0dbc)
  • eslint-plugin: add isTypeAssertion utility function (#1369) (bb1671e)
  • eslint-plugin: use AST_NODE_TYPES enum instead of strings (#1366) (bd0276b)
  • typescript-estree: correct type of key for base nodes (#1367) (099225a)

Features

  • eslint-plugin: [ban-types] handle empty type literal {} (#1348) (1c0ce9b)
  • eslint-plugin: [no-use-before-define] opt to ignore enum (#1242) (6edd911)
  • eslint-plugin: [pref-str-starts/ends-with] optional chain… (#1357) (fd37bc3)
  • eslint-plugin: add no-extra-semi [extension] (#1237) (425f65c)
  • eslint-plugin: add no-throw-literal [extension] (#1331) (2aa696c)
  • eslint-plugin: more optional chain support in rules (#1363) (3dd1b02)
  • eslint-plugin-tslint: add fixer for config rule (#1342) (c52c5c9)
  • typescript-estree: computed members discriminated unions (#1349) (013df9a)
  • typescript-estree: tighten prop name and destructure types (#1346) (f335c50)

2.12.0 (2019-12-16)

Bug Fixes

  • eslint-plugin: [prefer-null-coal] fixer w/ mixed logicals (#1326) (f9a9fbf)
  • eslint-plugin: [quotes] ignore backticks for interface properties (#1311) (3923a09)

Features

  • eslint-plugin: [no-unnec-cond] check optional chaining (#1315) (a2a8a0a)

2.11.0 (2019-12-09)

Bug Fixes

  • eslint-plugin: [brace-style] handle enum declarations (#1281) (3ddf1a2)

Features

  • eslint-plugin: [member-ordering] add index signature (#1190) (b5a52a3)

2.10.0 (2019-12-02)

Bug Fixes

  • eslint-plugin: [no-empty-function] add missed node types (#1271) (e9d44f5)
  • eslint-plugin: [no-untyped-pub-sig] ignore set return (#1264) (6daff10)
  • eslint-plugin: [no-unused-expressions] ignore directives (#1285) (ce4c803)
  • eslint-plugin: [prefer-optional-chain] allow $ in identifiers (c72c3c1)
  • eslint-plugin: [prefer-optional-chain] handle more cases (#1261) (57ddba3)
  • eslint-plugin: [return-await] allow Any and Unknown (#1270) (ebf5e0a)
  • eslint-plugin: [strict-bool-expr] allow nullish coalescing (#1275) (3b39340)
  • typescript-estree: make FunctionDeclaration.body non-null (#1288) (dc73510)

Features

  • eslint-plugin: [no-empty-func] private/protected construct (#1267) (3b931ac)
  • eslint-plugin: [no-non-null-assert] add suggestion fixer (#1260) (e350a21)
  • eslint-plugin: [no-unnec-cond] support nullish coalescing (#1148) (96ef1e7)
  • eslint-plugin: [prefer-null-coal] opt for suggestion fixer (#1272) (f84eb96)
  • experimental-utils: add isSpaceBetween declaration to Sou… (#1268) (f83f04b)

2.9.0 (2019-11-25)

Bug Fixes

  • eslint-plugin: [no-dynamic-delete] correct invalid fixer for identifiers (#1244) (5b1300d)
  • eslint-plugin: [no-untyped-pub-sig] constructor return (#1231) (6cfd468)
  • eslint-plugin: [prefer-optional-chain] unhandled cases (b1a065f)
  • eslint-plugin: [req-await] crash on nonasync promise return (#1228) (56c00b3)
  • typescript-estree: fix synthetic default import (#1245) (d97f809)

Features

  • eslint-plugin: [camelcase] add genericType option (#925) (d785c61)
  • eslint-plugin: [no-empty-interface] noEmptyWithSuper fixer (#1247) (b91b0ba)
  • eslint-plugin: [no-extran-class] add allowWithDecorator opt (#886) (f1ab9a2)
  • eslint-plugin: [no-unnece-cond] Add allowConstantLoopConditions (#1029) (ceb6f1c)
  • eslint-plugin: [restrict-plus-operands] check += (#892) (fa88cb9)
  • suggestion types, suggestions for no-explicit-any (#1250) (b16a4b6)
  • eslint-plugin: add no-extra-non-null-assertion (#1183) (2b3b5d6)
  • eslint-plugin: add no-unused-vars-experimental (#688) (05ebea5)
  • eslint-plugin: add prefer-nullish-coalescing (#1069) (a9cd399)
  • eslint-plugin: add return-await rule (#1050) (0ff4620)
  • eslint-plugin: add rule prefer-optional-chain (#1213) (ad7e1a7)
  • eslint-plugin: optional chain support in rules (part 1) (#1253) (f5c0e02)

2.8.0 (2019-11-18)

Bug Fixes

  • eslint-plugin: [camelcase] handle optional member expr (#1204) (9c8203f)
  • eslint-plugin: [indent] fix decorator type (#1189) (e2008e3)
  • eslint-plugin: [indent] handle empty generic declarations (#1211) (9aee06c)
  • eslint-plugin: [no-type-alias] handle constructor aliases (#1198) (1bb4d63)
  • eslint-plugin: [no-unnec-type-arg] throwing on call/new expr (#1217) (42a48de)
  • eslint-plugin: [no-unnecessary-cond] fix naked type param (#1207) (4fac6c5)
  • eslint-plugin: [nuta] correctly handle null/undefined separation (#1201) (9829dd3)
  • eslint-plugin: [require-await] better handle nesting (#1193) (eb83af1)
  • eslint-plugin: [unified-signatures] crash: cannot read pro… (#1096) (d1de3a7)
  • eslint-plugin: disable base no-unused-expressions in all config (ecb3f4e)
  • typescript-estree: correctly account for trailing slash in… (#1205) (ba89168)
  • typescript-estree: options range loc being always true (#704) (db1aa18)

Features

  • eslint-plugin: [no-type-alias] handle conditional types (#953) (259ff20)
  • eslint-plugin: add rule restrict-template-expressions (#850) (46b58b4)
  • eslint-plugin: add space-before-function-paren [extension] (#924) (d8b07a7)
  • eslint-plugin: added new rule no-dynamic-delete (#565) (864c811)
  • eslint-plugin: added new rule no-untyped-public-signature (#801) (c5835f3)

2.7.0 (2019-11-11)

Bug Fixes

  • eslint-plugin: crash fixing readonly arrays to generic (#1172) (2b2f2d7)
  • typescript-estree: hash code to reduce update frequency (#1179) (96d1cc3)
  • typescript-estree: reduce bundle footprint of tsutils (#1177) (c8fe515)

Features

  • eslint-plugin: [no-unused-expressions] extend for optional chaining (#1175) (57d63b7)
  • parser: handle optional chaining in scope analysis (#1169) (026ceb9)

2.6.1 (2019-11-04)

Bug Fixes

  • typescript-estree: don't use typescript's synthetic default (#1156) (17c956e), closes #1153
  • typescript-estree: fix filename handling for vue JSX + markdown (#1127) (366518f)
  • typescript-estree: improve comment parsing code (#1120) (e54998d)

2.6.0 (2019-10-28)

Bug Fixes

  • parser: adds TTY check before logging the version mismatch warning (#1121) (768ef63)
  • typescript-estree: better handle canonical paths (#1111) (8dcbf4c)
  • typescript-estree: correct parenthesized optional chain AST (#1141) (5ae286e)
  • typescript-estree: ensure parent pointers are set (#1129) (d4703e1)
  • typescript-estree: normalize paths to fix cache miss on windows (#1128) (6d0f2ce)

Features

  • typescript-estree: add support for declare class properties (#1136) (1508670)

2.5.0 (2019-10-21)

Bug Fixes

  • eslint-plugin: [no-magic-numbers] Support negative numbers (#1072) (0c85ac3)
  • typescript-estree: correct semver check range (#1109) (2fc9bd2)
  • typescript-estree: handle running out of fs watchers (#1088) (ec62747)
  • typescript-estree: parsing error for vue sfc (#1083) (7a8cce6)
  • typescript-estree: remove now unneeded dep on chokidar (088a691)

Features

  • eslint-plugin: Support abstract members in member-ordering rule (#395) (#1004) (5f093ac)
  • typescript-estree: support long running lint without watch (#1106) (ed5564d)

2.4.0 (2019-10-14)

Bug Fixes

  • eslint-plugin: [promise-function-async] Should not report… (#1023) (514bed9)
  • support long running "watch" lint sessions (#973) (854620e)

Features

  • typescript-estree: support for parsing 3.7 features (#1045) (623febf)

2.3.3 (2019-10-07)

Bug Fixes

  • eslint-plugin: [class-name-casing] allow unicode letters (#1043) (47895c0)
  • eslint-plugin: [efrt] support constructor arguments (#1021) (60943e6)
  • experimental-utils: remove Rule.meta.extraDescription (#1036) (192e23d)

2.3.2 (2019-09-30)

Bug Fixes

  • eslint-plugin: [no-unnec-type-arg] undefined symbol crash (#1007) (cdf9294)
  • typescript-estree: correct ClassDeclarationBase type (#1008) (8ce3a81)
  • typescript-estree: handle optional computed prop w/o type (#1026) (95c13fe)

2.3.1 (2019-09-23)

Bug Fixes

  • eslint-plugin: [cons-type-assns] handle namespaced types (#975) (c3c8b86)
  • eslint-plugin: [pfa] Allow async getter/setter in classes (#980) (e348cb2)
  • typescript-estree: parsing error for await in non-async func (#988) (19abbe0)

2.3.0 (2019-09-16)

Bug Fixes

  • typescript-estree: ImportDeclaration.specifier to Literal (#974) (2bf8231)

Features

  • eslint-plugin: [explicit-member-accessibility] add support of "ignoredMethodNames" (#895) (46ee4c9)
  • eslint-plugin: [no-floating-promises] Add ignoreVoid option (#796) (6a55921)
  • eslint-plugin: [no-magic-numbers] add ignoreReadonlyClassProperties option (#938) (aeea4cd)
  • eslint-plugin: [strict-boolean-expressions] Add allowNullable option (#794) (c713ca4)
  • eslint-plugin: add no-unnecessary-condition rule (#699) (5715482)

2.2.0 (2019-09-09)

Bug Fixes

  • eslint-plugin: [efrt] allowExpressions - check functions in class field properties (#952) (f1059d8)
  • eslint-plugin: [expl-member-a11y] fix parameter properties (#912) (ccb98d8)
  • eslint-plugin: [prefer-readonly] add handling for destructuring assignments (e011e90)

Features

  • eslint-plugin: add brace-style [extension] (#810) (e01dc5f)

2.1.0 (2019-09-02)

Bug Fixes

  • eslint-plugin: [member-naming] should match constructor args (#771) (b006667)
  • eslint-plugin: [no-inferrable-types] ignore optional props (#918) (a4e625f)
  • eslint-plugin: [promise-function-async] Allow async get/set (#820) (cddfdca)
  • eslint-plugin: [require-await] Allow concise arrow function bodies (#826) (29fddfd)
  • eslint-plugin: [typedef] don't flag destructuring when variables is disabled (#819) (5603473)
  • eslint-plugin: [typedef] handle AssignmentPattern inside TSParameterProperty (#923) (6bd7f2d)
  • eslint-plugin: [unbound-method] Allow typeof expressions (Fixes #692) (#904) (344bafe)
  • eslint-plugin: [unbound-method] false positive in equality comparisons (#914) (29a01b8)
  • eslint-plugin: [unified-signatures] type comparison and exported nodes (#839) (580eceb)
  • eslint-plugin: readme typo (#867) (5eb40dc)
  • typescript-estree: improve missing project file error msg (#866) (8f3b0a8), closes #853

Features

  • [no-unnecessary-type-assertion] allow as const arrow functions (#876) (14c6f80)
  • eslint-plugin: [expl-func-ret-type] make error loc smaller (#919) (65eb993)
  • eslint-plugin: [no-type-alias] support tuples (#775) (c68e033)
  • eslint-plugin: add quotes [extension] (#762) (9f82099)
  • typescript-estree: Accept a glob pattern for options.project (#806) (9e5f21e)

2.0.0 (2019-08-13)

  • feat(eslint-plugin)!: recommended-requiring-type-checking config (#846) (d3470c9), closes #846
  • feat(eslint-plugin)!: change recommended config (#729) (428567d), closes #729
  • feat(typescript-estree)!: throw error on file not in project when project set (#760) (3777b77), closes #760
  • feat(eslint-plugin)!: add rule consistent-type-assertions (#731) (92e98de), closes #731
  • feat(eslint-plugin)!: [array-type] rework options (#654) (1389393), closes #654 #635

Bug Fixes

  • eslint-plugin: [efrt] flag default export w/allowExpressions (#831) (ebbcc01)
  • eslint-plugin: [no-explicit-any] Fix ignoreRestArgs for interfaces (#777) (22e9ae5)
  • eslint-plugin: [no-useless-constructor] handle bodyless constructor (#685) (55e788c)
  • eslint-plugin: [prefer-readonly] TypeError when having comp… (#761) (211b1b5)
  • eslint-plugin: [typedef] support "for..in", "for..of" (#787) (39e41b5)
  • eslint-plugin: [typedef] support default value for parameter (#785) (84916e6)
  • eslint-plugin: add Literal to RuleListener types (#824) (3c902a1)
  • typescript-estree: fix is token typed as `Keyword (#750) (35dec52)
  • typescript-estree: jsx comment parsing (#703) (0cfc48e)
  • utils: add ES2019 as valid ecmaVersion (#746) (d11fbbe)

Features

  • explicitly support eslint v6 (#645) (34a7cf6)
  • eslint-plugin: [interface-name-prefix, class-name-casing] Add allowUnderscorePrefix option to support private declarations (#790) (0c4f474)
  • eslint-plugin: [no-var-requires] report on foo(require('')) (#725) (b2ca20d), closes #665
  • eslint-plugin: [promise-function-async] make allowAny default true (#733) (590ca50)
  • eslint-plugin: [strict-boolean-expressions] add ignoreRhs option (#691) (fd6be42)
  • eslint-plugin: add support for object props in CallExpressions (#728) (8141f01)
  • eslint-plugin: added new rule typedef (#581) (35cc99b)
  • eslint-plugin: added new rule use-default-type-parameter (#562) (2b942ba)
  • eslint-plugin: move opinionated rules between configs (#595) (4893aec)
  • eslint-plugin: remove deprecated rules (#739) (e32c7ad)

BREAKING CHANGES

  • removed some rules from recommended config
  • recommended config changes are considered breaking
  • by default we will now throw when a file is not in the project provided
  • Merges both no-angle-bracket-type-assertion and no-object-literal-type-assertion into one rule
  • eslint-plugin: both 'eslint-recommended' and 'recommended' have changed.
  • eslint-plugin: removing rules
  • changes config structure
type ArrayOption = 'array' | 'generic' | 'array-simple';
type Options = [
  {
    // default case for all arrays
    default: ArrayOption;
    // optional override for readonly arrays
    readonly?: ArrayOption;
  },
];
  • eslint-plugin: changing default rule config
  • Node 6 is no longer supported

1.13.0 (2019-07-21)

Bug Fixes

  • Correct @types/json-schema dependency (#675) (a5398ce)
  • eslint-plugin: remove imports from typescript-estree (#706) (ceb2d32), closes #705
  • eslint-plugin: undo breaking changes to recommended config (93f72e3)
  • utils: move typescript from peer dep to dev dep (#712) (f949355)
  • utils: RuleTester should not require a parser (#713) (158a417)

Features

  • eslint-plugin: add new rule no-misused-promises (#612) (28a131d)
  • eslint-plugin: add new rule require-await (#674) (807bc2d)

1.12.0 (2019-07-12)

Bug Fixes

  • eslint-plugin: handle const; (#633) (430d628), closes #441
  • typescript-estree: fix async identifier token typed as Keyword (#681) (6de19d3)

Features

  • eslint-plugin: [ban-types] Support namespaced type (#616) (e325b72)
  • eslint-plugin: [explicit-function-return-type] add handling for usage as arguments (#680) (e0aeb18)
  • eslint-plugin: [no-explicit-any] Add an optional fixer (#609) (606fc70)
  • eslint-plugin: Add rule no-reference-import (#625) (af70a59)
  • eslint-plugin: add rule strict-boolean-expressions (#579) (34e7d1e)
  • eslint-plugin: added new rule prefer-readonly (#555) (76b89a5)

1.11.0 (2019-06-23)

Bug Fixes

  • eslint-plugin: [no-magic-numbers] add support for enums (#543) (5c40d01)
  • eslint-plugin: [promise-function-async] allow any as return value (#553) (9a387b0)
  • eslint-plugin: Remove duplicated code (#611) (c4df4ff)
  • parser: add simpleTraverse, replaces private ESLint util (#628) (aa206c4)
  • typescript-estree: fix more cases with double slash in JSX text (#607) (34cfa53)

Features

  • eslint-plugin: [no-explicit-any] ignoreRestArgs (#548) (753ad75)
  • eslint-plugin: add consistent-type-definitions rule (#463) (ec87d06)
  • eslint-plugin: add new rule no-empty-function (#626) (747bfcb)
  • eslint-plugin: add new rule no-floating-promises (#495) (61e6385)

1.10.2 (2019-06-10)

Bug Fixes

  • eslint-plugin: peerDep should specify semver major range (#602) (5589938)

1.10.1 (2019-06-09)

Note: Version bump only for package @typescript-eslint/typescript-eslint

1.10.0 (2019-06-09)

Bug Fixes

Features

  • make utils/TSESLint export typed classes instead of just types (#526) (370ac72)
  • support TypeScript versions >=3.2.1 <3.6.0 (#597) (5d2b962)
  • eslint-plugin: [explicit-function-return-type] allowHigherOrderFunctions (#193) (#538) (50a493e)
  • eslint-plugin: add config all.json (#313) (67537b8)

1.9.0 (2019-05-12)

Bug Fixes

  • eslint-plugin: Add missing dependency (89c87cc), closes #516
  • eslint-plugin: Fix exported name of eslint-recommended (#513) (5c65350)

Features

  • eslint-plugin: add prefer-regexp-exec rule (#305) (f61d421)

1.8.0 (2019-05-10)

Bug Fixes

  • eslint-plugin: [array-type] support readonly operator (#429) (8e2d2f5)
  • eslint-plugin: [explicit-function-return-type] Add handling for class properties (#502) (2c36325)
  • eslint-plugin: [no-extra-parens] Fix build error (298d66c)
  • eslint-plugin: [unbound-method] Work around class prototype bug (#499) (3219aa7)
  • eslint-plugin: correct eslint-recommended settings (d52a683)
  • eslint-plugin: explicit-func-return-type: support object types and as expressions (#459) (d19e512)
  • eslint-plugin: restrict-plus-operands: generic constraint support (#440) (3f305b1)
  • upgrade lockfile versions (#487) (f029dba)
  • eslint-plugin: Support more nodes no-extra-parens>) (2d15644)
  • eslint-plugin: support switch statement unbound-method>) (e99ca81)
  • typescript-estree: ensure parents are defined during subsequent parses (#500) (665278f)

Features

1.7.0 (2019-04-20)

Bug Fixes

  • eslint-plugin: indent: fix false positive on type parameters (#385) (d476f15)
  • eslint-plugin: no-object-literal-type-assertion: fix as const is reported (#390) (2521b85)
  • eslint-plugin: support BigInt in restrict-plus-operands rule (#344) (eee6d49), closes #309

Features

  • eslint-plugin: [member-accessibility] add more options (#322) (4b3d820)
  • eslint-plugin: add prefer-for-of rule (#338) (3e26ab6)
  • eslint-plugin: add prefer-includes rule (#294) (01c4dae), closes #284
  • eslint-plugin: add prefer-string-starts-ends-with rule (#289) (5592a2c), closes #285
  • eslint-plugin: added new rule await-promise (#192) (5311342)
  • eslint-plugin: added new rule unbound-method (#204) (6718906)
  • eslint-plugin: support type assertions in no-extra-parens rule (#311) (116ca75)

1.6.0 (2019-04-03)

Bug Fixes

  • eslint-plugin: explicit-function-return-type: ensure class arrow methods are validated (#377) (643a223), closes #348
  • eslint-plugin: Fix allowExpressions false positives in explicit-function-return-type and incorrect documentation (#388) (f29d1c9), closes #387
  • eslint-plugin: member-naming false flagging constructors (#376) (ad0f2be), closes #359
  • eslint-plugin: no-type-alias: fix typeof alias erroring (#380) (cebcfe6)
  • parser: Make eslint traverse enum id (#383) (492b737)
  • typescript-estree: add ExportDefaultDeclaration to union DeclarationStatement (#378) (bf04398)

Features

  • change TypeScript version range to >=3.2.1 <3.5.0 (#399) (a4f95d3)
  • eslint-plugin: allow explicit variable type with arrow functions (#260) (bea6b92), closes #149

1.5.0 (2019-03-20)

Bug Fixes

  • eslint-plugin: [interface-name-prefix] correct error message in always mode (#333) (097262f)
  • eslint-plugin: fix false positives for adjacent-overload-signatures regarding computed property names (#340) (f6e5118)
  • eslint-plugin: fix incorrect rule name (#357) (0a5146b)
  • typescript-estree: only call watch callback on new files (#367) (0ef07c4)

Features

  • eslint-plugin: Add unified-signature rule (#178) (6ffaa0b)

1.4.2 (2019-02-25)

Bug Fixes

1.4.1 (2019-02-23)

Bug Fixes

  • eslint-plugin: out-of-bounds access in member-ordering rule (#304) (4526f27)
  • eslint-plugin: support BigInt in restrict-plus-operands rule (#309) (#310) (9a88363)

1.4.0 (2019-02-19)

Bug Fixes

  • parser: fix crash when visiting decorators in parameters (#237) (225fc26)
  • parser: fix visiting props of TSDeclareFunction (#244) (b40def8)
  • ts-estree: make sure that every node can be converted to tsNode (#287) (9f1d314)
  • typescript-estree, eslint-plugin: stop adding ParenthesizedExpressions to node maps (#226) (317405a)

Features

  • eslint-plugin: add 'no-unnecessary-qualifier' rule (#231) (cc8f906)
  • eslint-plugin: add ban-ts-ignore rule (#276) (859ab29)
  • eslint-plugin: add prefer-function-type rule (#222) (b95c4cf)
  • eslint-plugin: add require-array-sort-compare rule (#261) (2a4aaaa), closes #247
  • eslint-plugin: Migrate plugin to ts (#120) (61c60dc)
  • eslint-plugin: update types to allow parameter type inferrence (#272) (80bd72c)
  • no-empty-interface: add allowSingleExtend option (#215) (bf46f8c)
  • ts-estree: fix parsing nested sequence expressions (#286) (ecc9631)

1.3.0 (2019-02-07)

Bug Fixes

  • eslint-plugin: fix false positive from adjacent-overload-signatures (#206) (07e950e)
  • ts-estree: align typeArguments and typeParameters across nodes (#223) (3306198)
  • ts-estree: convert decorators on var and fn decs (#211) (0a1777f)
  • ts-estree: fix issues with typeParams in FunctionExpression (#208) (d4dfa3b)

Features

  • change TypeScript version range to >=3.2.1 <3.4.0 (#184) (f513a14)
  • eslint-plugin: add new rule no-for-in-array (#155) (84162ba)
  • eslint-plugin: add new rule no-require-imports (#199) (683e5bc)
  • eslint-plugin: added new rule promise-function-async (#194) (5f3aec9)
  • ts-estree: enable errors 1098 and 1099 (#219) (fc50167)

1.2.0 (2019-02-01)

Bug Fixes

  • eslint-plugin: fix no-extraneous-class for class without name (#174) (b1dbb64)
  • eslint-plugin: fix wrong URL (#180) (00d020d)
  • eslint-plugin: use bracket for infer type in array-type rule (#173) (1f868ce)
  • parser: fix regression with no-unused-vars for jsx attributes (#161) (6147de1)

Features

  • eslint-plugin: add eslint rule no-useless-constructor (#167) (3fb57a5)
  • eslint-plugin: add no-unnecessary-type-assertion rule (#157) (38abc28)

1.1.1 (2019-01-29)

Bug Fixes

  • eslint-plugin: make parser services error clearer (#132) (aa9d1e1)
  • parser: add visiting of type parameters in JSXOpeningElement (#150) (5e16003)
  • ts-estree: expand optional property to include question token (#138) (9068b62)

Performance Improvements

  • ts-estree: don't create Program in parse() (#148) (aacf5b0)

1.1.0 (2019-01-23)

Bug Fixes

  • eslint-plugin: don’t mark declare class as unused (#110) (5841cd2), closes #106
  • eslint-plugin: improve detection of used vars in heritage (#102) (193b434)
  • typescript-estree: correct range of parameters with comments (#128) (91eedf2)
  • typescript-estree: fix range of assignment in parameter (#115) (4e781f1)

Features

  • eslint-plugin: add new rule restrict-plus-operands (#70) (c541ede)
  • eslint-plugin: add option to no-object-literal-type-assertion rule (#87) (9f501a1)

1.0.0 (2019-01-20)

Bug Fixes

  • eslint-plugin: fix crash in rule indent for eslint 5.12.1 (#89) (3f51d51)
  • eslint-plugin: no-unused-vars: mark declared statements as used (#88) (2df5e0c)
  • eslint-plugin: update remaining parser refs (#97) (055c3fc)

Features

  • eslint-plugin: remove exported parser (#94) (0ddb93c)
  • parser: support ecmaFeatures.jsx flag and tests (#85) (b321736)

0.2.1 (2019-01-20)

Note: Version bump only for package @typescript-eslint/typescript-eslint