Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@typescript-eslint/rule-tester

typescript-eslint1.2mMIT8.21.0TypeScript support: included

Tooling to test ESLint rules

eslint, typescript, estree

readme

typescript-eslint

Monorepo for the tooling that enables ESLint and Prettier to support TypeScript

CI Financial Contributors on Open Collective NPM Downloads Codecov

👇

See typescript-eslint.io for documentation on the latest released version.

See main--typescript-eslint.netlify.app for documentation on the latest canary release.

👆

Code Contributors

This project exists thanks to the awesome people who contribute code and documentation:

Gallery of all contributors' profile photos

🙏 An extra special thanks goes out to the wonderful people listed in CONTRIBUTORS.md

Financial Contributors

In addition to submitting code and documentation updates, you can help us sustain our community by becoming a financial contributor [Click here to contribute - every little bit helps!]

Deploys by Netlify

License

typescript-eslint inherits is licensed under a permissive MIT license.

changelog

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