Compare Versions - @typescript-eslint/eslint-plugin
npm / @typescript-eslint/eslint-plugin / Compare Versions
8.60.0 (2026-05-25)
🚀 Features
- rule-tester: added updates of RuleTester from upstream (#12291)
🩹 Fixes
❤️ Thank You
- Evyatar Daud @StyleShit
- Vinccool96
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
8.59.4 (2026-05-18)
🩹 Fixes
- eslint-plugin: [no-floating-promises] stack overflow when using recursive types (#12294)
- project-service: throw error cause in
getParsedConfigFileFromTSServer(#12321) - typescript-eslint: export Compatible* types from typescript-eslint to resolve pnpm TS error (#12340)
❤️ Thank You
- Evyatar Daud @StyleShit
- Kirk Waiblinger @kirkwaiblinger
- lumir
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
8.59.3 (2026-05-11)
This was a version bump only, there were no code changes.
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
8.59.2 (2026-05-04)
🩹 Fixes
- eslint-plugin: [no-unsafe-type-assertion] handle crash on recursive template literal types (#12150)
- eslint-plugin: [no-deprecated] object destructuring values should be treated as declarations (#12292)
- rule-tester: add TypeScript as a peer dependency (#12288)
❤️ Thank You
- Dariusz Czajkowski
- Dima Barabash
- Kirk Waiblinger @kirkwaiblinger
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
8.59.1 (2026-04-27)
🩹 Fixes
- eslint-plugin: [no-unnecessary-type-assertion] fix crash "TypeError: checker.getTypeArguments is not a function" (#12246)
- eslint-plugin: [no-unnecessary-type-assertion] preserve index signatures in undefined unions (#12257)
- eslint-plugin: [no-unnecessary-type-assertion] preserve phantom type arguments in generic inference (#12269)
- eslint-plugin: [no-unnecessary-type-assertion] avoid false positive in logical assignment assertions (#12278)
- eslint-plugin: [no-unnecessary-type-arguments] handle instantiation expressions (#12220)
- eslint-plugin: [no-unnecessary-condition] treat void as nullish in no-unnecessary-condition (#12241)
❤️ Thank You
- anasm266 @anasm266
- Anshika Jain @Anshikakalpana
- Ulrich Stark
- yugo innami @nami8824
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
8.59.0 (2026-04-20)
🚀 Features
- eslint-plugin: [no-unnecessary-type-assertion] report more cases based on assignability (#11789)
❤️ Thank You
- Ulrich Stark
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
8.58.2 (2026-04-13)
🩹 Fixes
- remove tsbuildinfo cache file from published packages (#12187)
- eslint-plugin: [no-unnecessary-condition] use assignability checks in checkTypePredicates (#12147)
❤️ Thank You
- Abhijeet Singh @cseas
- 송재욱
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
8.58.1 (2026-04-08)
🩹 Fixes
- eslint-plugin: [no-unused-vars] fix false negative for type predicate parameter (#12004)
❤️ Thank You
- MinJae @Ju-MINJAE
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
8.58.0 (2026-03-30)
🚀 Features
- support TypeScript 6 (#12124)
🩹 Fixes
- eslint-plugin: crash in
no-unnecessary-type-arguments(#12163) - eslint-plugin: [no-extraneous-class] handle index signatures (#12142)
- eslint-plugin: [prefer-regexp-exec] avoid fixing unknown RegExp flags (#12161)
❤️ Thank You
- ej shafran @ej-shafran
- Evyatar Daud @StyleShit
- GG ZIBLAKING
- milkboy2564 @SeolJaeHyeok
- teee32 @teee32
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
8.57.2 (2026-03-23)
🩹 Fixes
- eslint-plugin: [prefer-optional-chain] remove dangling closing parenthesis (#11865)
- eslint-plugin: [array-type] ignore Array and ReadonlyArray without type arguments (#11971)
- eslint-plugin: [no-restricted-types] flag banned generics in extends or implements (#12120)
- eslint-plugin: [no-unsafe-return] false positive on unwrapping generic (#12125)
- eslint-plugin: [no-unsafe-return] false positive on unwrapping generic (#12125)
- eslint-plugin: [no-useless-default-assignment] skip reporting false positives for unresolved type parameters (#12127)
- eslint-plugin: [prefer-readonly-parameter-types] preserve type alias infomation (#11954)
- typescript-estree: skip createIsolatedProgram fallback for projectService (#12066, #12065)
❤️ Thank You
- Claude Opus 4.6
- Kirk Waiblinger @kirkwaiblinger
- Konv Suu
- mdm317
- Newton Yuan @NewtonYuan
- RyoheiYamamoto
- SungHyun627 @SungHyun627
- Tamashoo @Tamashoo
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
8.57.1 (2026-03-16)
🩹 Fixes
- eslint-plugin: [prefer-optional-chain] no report for property on intersection type (#12126)
❤️ Thank You
- Newton Yuan @NewtonYuan
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
8.57.0 (2026-03-09)
🚀 Features
- eslint-plugin: [no-unnecessary-condition] allow literal loop conditions in for/do loops (#12080)
🩹 Fixes
- eslint-plugin: [strict-void-return] false positives with overloads (#12055)
- eslint-plugin: handle statically analyzable computed keys in prefer-readonly (#12079)
- eslint-plugin: guard against negative paramIndex in no-useless-default-assignment (#12077)
- eslint-plugin: [prefer-promise-reject-errors] add allow
TypeOrValueSpecifierto prefer-promise-reject-errors (#12094) - eslint-plugin: [no-base-to-string] fix false positive for toString with overloads (#12089)
- typescript-estree: switch back to use
ts.getModifiers()(#12034) - typescript-estree: if the template literal is tagged and the text has an invalid escape,
cookedwill benull(#11355)
❤️ Thank You
- Brad Zacher @bradzacher
- Brian Schlenker @bschlenk
- Evyatar Daud @StyleShit
- fisker Cheung @fisker
- James Henry @JamesHenry
- Josh Goldberg
- Kirk Waiblinger @kirkwaiblinger
- Moses Odutusin @thebolarin
- Newton Yuan @NewtonYuan
- SungHyun627 @SungHyun627
- Younsang Na @nayounsang
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
8.56.1 (2026-02-23)
This was a version bump only, there were no code changes.
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
8.56.0 (2026-02-16)
🚀 Features
- support ESLint v10 (#12057)
🩹 Fixes
- use parser options from context.languageOptions (#12043)
❤️ Thank You
- Brad Zacher @bradzacher
- fnx @DMartens
- Joshua Chen
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
8.55.0 (2026-02-09)
🚀 Features
- utils: deprecate defaultOptions in favor of meta.defaultOptions (#11992)
🩹 Fixes
- eslint-plugin: [no-unused-vars] remove trailing newline when removing entire import (#11990)
- eslint-plugin: [no-useless-default-assignment] require strictNullChecks (#11966, #12000)
- eslint-plugin: [no-useless-default-assignment] report unnecessary defaults in ternary expressions (#11984)
- eslint-plugin: [no-useless-default-assignment] reduce param index to ts this handling (#11949)
- typescript-estree: forbid invalid modifier in object expression (#11931)
❤️ Thank You
- Christian Rose @chrros95
- fisker Cheung @fisker
- Josh Goldberg
- Maria Solano @MariaSolOs
- Minyeong Kim @minyeong981
- SungHyun627 @SungHyun627
- Yukihiro Hasegawa @y-hsgw
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
8.54.0 (2026-01-26)
🚀 Features
- eslint-plugin-internal: add prefer-tsutils-methods rule (#11974, #11625)
- scope-manager: support ScopeManager#addGlobals (#11914)
- typescript-estree: add shortcut methods to ParserServicesWithTypeInformation (#11965, #11955)
🩹 Fixes
- deps: update dependency prettier to v3.8.0 (#11991)
- eslint-plugin: [no-unused-private-class-members] private destructured class member is defined but used (#11785)
- eslint-plugin: [no-unnecessary-type-assertion] check both base constraint and actual type for non-null assertions (#11967, #11559)
- scope-manager: fix catch clause scopes
def.name(#11982) - scope-manager: prevent misidentification of
"use strict"directives (#11995) - utils: handle missing
FlatESLintandLegacyESLint(#11958)
❤️ Thank You
- Brad Zacher @bradzacher
- fnx @DMartens
- Francesco Trotta
- Josh Goldberg
- MinJae @Ju-MINJAE
- Minyeong Kim @minyeong981
- overlookmotel
- Yuya Yoshioka @YuyaYoshioka
- 김현수 @Kimsoo0119
You can read about our versioning strategy and releases on our website.
8.53.1 (2026-01-19)
🩹 Fixes
- eslint-plugin: [consistent-indexed-object-style] skip fixer if interface is a default export (#11951)
- utils: make RuleCreator root defaultOptions optional (#11956)
❤️ Thank You
- Cameron
- Yukihiro Hasegawa @y-hsgw
You can read about our versioning strategy and releases on our website.
8.53.0 (2026-01-12)
🚀 Features
- eslint-plugin: [no-unused-vars] add a fixer to remove unused imports (#11922)
- eslint-plugin: add rule [strict-void-return] (#9707)
- project-service: allow passing
Partial<ts.server.ServerHost>to project service (#11932)
🩹 Fixes
- eslint-plugin: replace unclear "
errortyped" with more helpful description (#11704) - eslint-plugin: [no-useless-default-assignment] fix false positive for parameters corresponding to a rest parameter (#11916)
- typescript-estree: forbid type-only import with both default and named specifiers (#11930)
- typescript-estree: fix syntax check for
usingdeclaration (#11910) - typescript-estree: forbid invalid class implements (#11934)
- typescript-estree: forbid invalid "import equals" declaration (#11936)
- typescript-estree: forbid invalid
extendsandimplementsin interface declaration (#11935)
❤️ Thank You
- auvred @auvred
- Brad Zacher @bradzacher
- fisker Cheung @fisker
- Josh Goldberg
- Josh Goldberg ✨
- Kirk Waiblinger
- Niki @phaux
- Nikita
- SungHyun627 @SungHyun627
- Will Harney @wjhsf
You can read about our versioning strategy and releases on our website.
8.52.0 (2026-01-05)
🚀 Features
- eslint-plugin-internal: [no-multiple-lines-of-errors] add rule (#11899)
- typescript-estree: add tseslint.com redirects for CLI outputs (#11895)
🩹 Fixes
- eslint-plugin: [no-useless-default-assignment] handle conditional initializer (#11908)
- eslint-plugin: [no-base-to-string] detect @@toPrimitive and valueOf (#11901)
❤️ Thank You
- Josh Goldberg ✨
- Ulrich Stark
You can read about our versioning strategy and releases on our website.
8.51.0 (2025-12-29)
🚀 Features
- eslint-plugin: expose rule name via RuleModule interface (#11719)
- eslint-plugin: [no-useless-default-assignment] fix some cases to optional syntax (#11871)
- eslint-plugin: add namespace to plugin meta (#11885)
- tsconfig-utils: more informative error on parsing failures (#11888)
🩹 Fixes
- eslint-plugin: fix crash and false positives in
no-useless-default-assignment(#11845) - eslint-plugin: remove fixable from no-dynamic-delete rule (#11876)
- eslint-plugin: bump ts-api-utils to 2.2.0 (#11881)
- eslint-plugin: [prefer-optional-chain] handle MemberExpression in final chain position (#11835)
❤️ Thank You
- Josh Goldberg ✨
- Kirk Waiblinger @kirkwaiblinger
- mdm317
- Ulrich Stark
- Yannick Decat @mho22
- Yukihiro Hasegawa @y-hsgw
You can read about our versioning strategy and releases on our website.
8.50.1 (2025-12-22)
🩹 Fixes
- eslint-plugin: [method-signature-style] ignore methods that return
this(#11813) - eslint-plugin: [no-unnecessary-type-assertion] correct handling of undefined vs. void (#11826)
❤️ Thank You
- Josh Goldberg ✨
- Tamashoo @Tamashoo
You can read about our versioning strategy and releases on our website.
8.50.0 (2025-12-15)
🚀 Features
- eslint-plugin: [no-useless-default-assignment] add rule (#11720)
❤️ Thank You
- Josh Goldberg ✨
- Ulrich Stark
You can read about our versioning strategy and releases on our website.
8.49.0 (2025-12-08)
🚀 Features
- eslint-plugin: use
Intl.Segmenterinstead ofgraphemer(#11804)
🩹 Fixes
- deps: update dependency prettier to v3.7.2 (#11820)
❤️ Thank You
- Justin McBride
- Kirk Waiblinger @kirkwaiblinger
You can read about our versioning strategy and releases on our website.
8.48.1 (2025-12-02)
🩹 Fixes
- eslint-plugin: [consistent-type-exports] check value flag before resolving alias (#11769)
- eslint-plugin: honor ignored base types on generic classes (#11767)
- eslint-plugin: [restrict-template-expressions] check base types in allow list (#11764, #11759)
❤️ Thank You
- Josh Goldberg
- OleksandraKordonets
- SangheeSon @Higangssh
- tao
You can read about our versioning strategy and releases on our website.
8.48.0 (2025-11-24)
🚀 Features
- eslint-plugin: [no-redundant-type-constituents] use assignability checking for redundancy checks (#10744)
- rule-tester: remove workaround for jest circular structure error (#11772)
- typescript-estree: gate all errors behind allowInvalidAST (#11693)
- typescript-estree: replace fast-glob with tinyglobby (#11740)
🩹 Fixes
- eslint-plugin: [consistent-generic-constructors] ignore when constructor is typed array (#10477)
- scope-manager: change unhelpful
aaaerror message and changeanalyzeto expectsProgram(#11747) - typescript-estree: infers singleRun as true for project service (#11327)
- typescript-estree: disallow binding patterns in parameter properties (#11760)
❤️ Thank You
- Ben McCann @benmccann
- Dima Barabash @dbarabashh
- fisker Cheung @fisker
- James Henry @JamesHenry
- JamesHenry @JamesHenry
- Josh Goldberg
- Josh Goldberg ✨
- Kirk Waiblinger @kirkwaiblinger
- mdm317 @gen-ip-1
- Younsang Na @nayounsang
You can read about our versioning strategy and releases on our website.
8.47.0 (2025-11-17)
🚀 Features
- eslint-plugin: [no-unused-private-class-members] new extension rule (#10913)
❤️ Thank You
- Brad Zacher @bradzacher
You can read about our versioning strategy and releases on our website.
8.46.4 (2025-11-10)
🩹 Fixes
- eslint-plugin: [no-deprecated] fix double-report on computed literal identifiers (#11006, #10958)
- eslint-plugin: handle override modifier in promise-function-async fixer (#11730)
- parser: error when both
projectServiceandprojectare set (#11333)
❤️ Thank You
- Evgeny Stepanovych @undsoft
- Kentaro Suzuki @sushichan044
- Maria Solano @MariaSolOs
You can read about our versioning strategy and releases on our website.
8.46.3 (2025-11-03)
🩹 Fixes
- eslint-plugin: [no-misused-promises] expand union type to retrieve target property (#11706)
- eslint-plugin: [no-duplicate-enum-values] support signed numbers (#11722, #11723)
❤️ Thank You
- Evgeny Stepanovych @undsoft
- tao
You can read about our versioning strategy and releases on our website.
8.46.2 (2025-10-20)
🩹 Fixes
- eslint-plugin: [prefer-optional-chain] skip optional chaining when it could change the result (#11702)
- typescript-estree: forbid invalid modifiers in object methods (#11689)
❤️ Thank You
- fisker Cheung @fisker
- mdm317
You can read about our versioning strategy and releases on our website.
8.46.1 (2025-10-13)
🩹 Fixes
- ast-spec: cleanup
TSLiteralType(#11624) - eslint-plugin: [prefer-optional-chain] include mixed "nullish comparison style" chains in checks (#11533)
- eslint-plugin: [no-misused-promises] special-case
.finallynot to report when a promise returning function is provided as an argument (#11667)
❤️ Thank You
- Abraham Guo
- mdm317
- Ronen Amiel
You can read about our versioning strategy and releases on our website.
8.46.0 (2025-10-06)
🚀 Features
- eslint-plugin: [no-unsafe-member-access] add allowOptionalChaining option (#11659)
- eslint-plugin-internal: [no-dynamic-tests] new internal Lint rule to ban dynamic syntax in generating tests (#11323)
- rule-schema-to-typescript-types: clean up and make public (#11633)
- typescript-eslint: export util types (#10848, #10849)
- typescript-estree: mention file specifics in project service allowDefaultProject error (#11635)
- typescript-estree: private identifiers can only appear on LHS of in expressions (#9232)
🩹 Fixes
- eslint-plugin: [no-floating-promises] remove excess parentheses in suggestions (#11487)
- eslint-plugin: [unbound-method] improve wording around
this: voidand binding (#11634) - eslint-plugin: [no-deprecated] ignore deprecated
export imports (#11603) - eslint-plugin: removed error type previously deprecated (#11674)
- eslint-plugin: [prefer-readonly-parameter-types] ignore tagged primitives (#11660)
- rule-tester: deprecate TestCaseError#type and LintMessage#nodeType (#11628)
- typescript-estree: forbid
abstractmodifier in object methods (#11656) - typescript-estree: forbid abstract method and accessor to have implementation (#11657)
❤️ Thank You
- fisker Cheung @fisker
- Josh Goldberg ✨
- Joshua Chen
- Kirk Waiblinger @kirkwaiblinger
- Mark de Dios @peanutenthusiast
- Mister-Hope @Mister-Hope
- Richard Torres @richardtorres314
- Victor Genaev @mainframev
- Younsang Na @nayounsang
You can read about our versioning strategy and releases on our website.
8.45.0 (2025-09-29)
🚀 Features
- eslint-plugin: expose rule name via RuleModule interface (#11616)
🩹 Fixes
- disable generating declaration maps (#11627)
- ast-spec: narrow ArrowFunctionExpression.generator to false (#11636)
- eslint-plugin: [no-base-to-string] check if superclass is ignored (#11617)
- eslint-plugin: [prefer-nullish-coalescing] ignoreBooleanCoercion should not apply to top-level ternary expressions (#11614)
❤️ Thank You
- Bjorn Lu
- Josh Goldberg ✨
- mdm317
- Moses Odutusin @thebolarin
- Yukihiro Hasegawa @y-hsgw
You can read about our versioning strategy and releases on our website.
8.44.1 (2025-09-22)
🩹 Fixes
- eslint-plugin: [no-base-to-string] make ignoredTypeNames match type names without generics (#11597)
- eslint-plugin: [no-unsafe-enum-comparison] support unions of literals (#11599)
- eslint-plugin: [await-thenable] should not report passing values to promise aggregators which may be a promise in an array literal (#11611)
- typescript-estree: forbid class property with name
constructor(#11590)
❤️ Thank You
- fisker Cheung @fisker
- Kirk Waiblinger @kirkwaiblinger
- mdm317
- Ronen Amiel
You can read about our versioning strategy and releases on our website.
8.44.0 (2025-09-15)
🚀 Features
- eslint-plugin: [await-thenable] report invalid (non-promise) values passed to promise aggregator methods (#11267)
🩹 Fixes
- deps: update dependency @eslint-community/eslint-utils to v4.8.0 (#11589)
- eslint-plugin: [no-unnecessary-type-conversion] ignore enum members (#11490)
❤️ Thank You
- Moses Odutusin @thebolarin
- Ronen Amiel
You can read about our versioning strategy and releases on our website.
8.43.0 (2025-09-08)
🚀 Features
- typescript-estree: disallow empty type parameter/argument lists (#11563)
🩹 Fixes
- eslint-plugin: [no-non-null-assertion] do not suggest optional chain on LHS of assignment (#11489)
- eslint-plugin: [no-unnecessary-type-conversion] only report ~~ on integer literal types (#11517)
- eslint-plugin: [consistent-type-exports] fix declaration shadowing (#11457)
- eslint-plugin: [no-floating-promises] allowForKnownSafeCalls now supports function names (#11423, #11430)
- eslint-plugin: [no-deprecated] should report deprecated exports and reexports (#11359)
- eslint-plugin: [prefer-return-this-type] don't report an error when returning a union type that includes a classType (#11432)
- rule-tester: normalize paths before checking if they escape cwd (#11525)
- scope-manager: exclude Program from DefinitionBase node types (#11469)
- type-utils: add union type support to TypeOrValueSpecifier (#11526)
- typescript-estree: match filenames starting with a period when using glob in allowDefaultProject / (#11537)
❤️ Thank You
- Dima @dbarabashh
- Kirk Waiblinger @kirkwaiblinger
- mdm317
- Nicolas Le Cam
- tao
- Victor Genaev @mainframev
- Yukihiro Hasegawa @y-hsgw
- 민감자(Minji Kim) @mouse0429
- 송재욱
You can read about our versioning strategy and releases on our website.
8.42.0 (2025-09-02)
🚀 Features
- deprecate tseslint.config() (#11531)
🩹 Fixes
- deps: update eslint monorepo to v9.33.0 (#11482)
- typescript-eslint: handle non-normalized windows paths produced by jiti (#11546)
❤️ Thank You
- Kirk Waiblinger @kirkwaiblinger
You can read about our versioning strategy and releases on our website.
8.41.0 (2025-08-25)
🚀 Features
- tighten
tsconfigRootDirvalidation (#11463)
🩹 Fixes
- resolve type error in eslint config (#11500)
- deps: update babel monorepo (#11174)
- deps: update dependency prettier to v3.6.2 (#11496)
❤️ Thank You
- Kirk Waiblinger @kirkwaiblinger
You can read about our versioning strategy and releases on our website.
8.40.0 (2025-08-18)
🚀 Features
- typescript-estree: forbid invalid keys in
EnumMember(#11232)
🩹 Fixes
- typescript-eslint: export
plugin,parser, andconfigsthat are compatible with bothdefineConfig()andtseslint.config()(#11475) - typescript-estree: correct range of import assertion with trailing comma (#11478)
- utils: correct
calculateConfigForFilereturn type (#11451)
❤️ Thank You
- fisker Cheung @fisker
- Kirk Waiblinger @kirkwaiblinger
- Nolan Gajdascz @Gajdascz
You can read about our versioning strategy and releases on our website.
8.39.1 (2025-08-11)
🩹 Fixes
- typescript-eslint: handle
file://urls in stack trace when inferringtsconfigRootDir(#11464)
❤️ Thank You
- Kirk Waiblinger @kirkwaiblinger
You can read about our versioning strategy and releases on our website.
8.39.0 (2025-08-04)
🚀 Features
- update to TypeScript 5.9.2 (#11445)
- eslint-plugin: [naming-convention] add enumMember PascalCase default option (#11127)
- eslint-plugin: add no-unnecessary-type-conversion to strict-type-checked ruleset (#11427)
- eslint-plugin: [only-throw-error] support yield/await expressions (#11417)
🩹 Fixes
- eslint-plugin: [prefer-optional-chain] ignore
checkoption for most RHS of a chain (#11272) - eslint-plugin: [no-unsafe-assignment] add an
unsafeObjectPatternmessage (#11403)
❤️ Thank You
- Brad Zacher @bradzacher
- James Garbutt @43081j
- Kim Sang Du @developer-bandi
- Sasha Kondrashov
- tao
- Younsang Na @nayounsang
You can read about our versioning strategy and releases on our website.
8.38.0 (2025-07-21)
🚀 Features
- typescript-estree: forbid optional chain in
TemplateTaggedLiteral(#11391)
🩹 Fixes
- disallow extra properties in rule options (#11397)
- eslint-plugin: [consistent-generic-constructors] resolve conflict with
isolatedDeclarationsif enabled inconstructoroption (#11351) - typescript-eslint: infer tsconfigRootDir with v8 API (#11412)
- typescript-eslint: error on nested
extendsintseslint.config()(#11361) - typescript-estree: ensure the token type of the property name is Identifier (#11329)
❤️ Thank You
- Andrew Kazakov @andreww2012
- Kirk Waiblinger @kirkwaiblinger
- MK @asdf93074
- tao
- Younsang Na @nayounsang
You can read about our versioning strategy and releases on our website.
8.37.0 (2025-07-14)
🚀 Features
- typescript-estree: infer tsconfigRootDir from call stack (#11370)
🩹 Fixes
- eslint-plugin: [unified-signatures] fix false positives for ignoreOverloadsWithDifferentJSDoc option (#11381)
- type-utils: add missing 'types' dependency to 'type-utils' (#11383)
- type-utils: handle namespaced exports in specifier matching (#11380)
❤️ Thank You
- Bill Collins
- Josh Goldberg ✨
- René @Renegade334
- Yukihiro Hasegawa @y-hsgw
You can read about our versioning strategy and releases on our website.
8.36.0 (2025-07-07)
🚀 Features
- typescript-eslint: support
basePathintseslint.config()(#11357)
❤️ Thank You
- Kirk Waiblinger @kirkwaiblinger
You can read about our versioning strategy and releases on our website.
8.35.1 (2025-06-30)
🩹 Fixes
- remove prettier from eslint-plugin (#11339)
- website: did not find a source file error if url hash doesn't contain fileType (#11350)
❤️ Thank You
- Abhijeet Singh @cseas
- mdm317
You can read about our versioning strategy and releases on our website.
8.35.0 (2025-06-23)
🚀 Features
- eslint-plugin: [no-base-to-string] add checkUnknown Option (#11128)
🩹 Fixes
- website: acquired types are shown in the editor but not reflected in linting (#11198)
❤️ Thank You
- Kim Sang Du @developer-bandi
- mdm317
You can read about our versioning strategy and releases on our website.
8.34.1 (2025-06-16)
🩹 Fixes
- types: add 2026/17 to EcmaVersion (#11304)
- typescript-estree: emit a Literal instead of Identifier for constructor when the identifier is a string (#11299)
- visitor-keys: bump
eslint-visitor-keysdependency (#11294)
❤️ Thank You
- David Archibald
- overlookmotel
- Tao
You can read about our versioning strategy and releases on our website.
8.34.0 (2025-06-09)
🚀 Features
- type-utils: deprecated getSourceFileOfNode function (#11284)
🩹 Fixes
- typescript-estree: change the token type of
nullfromKeywordtoNull(#11283) - typescript-estree: add validation to interface extends (#11271)
- visitor-keys: fix visitor keys order (#11279)
❤️ Thank You
- Kim Sang Du @developer-bandi
- overlookmotel
- Tao
You can read about our versioning strategy and releases on our website.
8.33.1 (2025-06-02)
🩹 Fixes
- exclude docs/ directory from eslint-plugin package (#11251)
- project-service: add missing
typescriptpeer dependency (#11265)
❤️ Thank You
- JounQin
- roottool
You can read about our versioning strategy and releases on our website.
8.33.0 (2025-05-26)
🚀 Features
- create standalone project-service, tsconfig-utils packages (#11182)
❤️ Thank You
- Josh Goldberg ✨
You can read about our versioning strategy and releases on our website.
8.32.1 (2025-05-12)
🩹 Fixes
- eslint-plugin: [no-unnecessary-type-conversion] shouldn't have fixable property (#11194)
- eslint-plugin: [no-deprecated] support computed member access (#10867)
- eslint-plugin: [consistent-indexed-object-style] adjust auto-fixer to generate valid syntax for
TSMappedTypewith no type annotation (#11180) - eslint-plugin: [consistent-indexed-object-style] check for indirect circular types in aliased mapped types (#11177)
❤️ Thank You
- Azat S. @azat-io
- Dima Barabash @dbarabashh
- Ronen Amiel
You can read about our versioning strategy and releases on our website.
8.32.0 (2025-05-05)
🚀 Features
- eslint-plugin: [no-unnecessary-type-conversion] add rule (#10182)
- eslint-plugin: [only-throw-error] add option
allowRethrowing(#11075)
🩹 Fixes
- deps: update dependency typedoc to ^0.28.0 (1fef33521)
- eslint-plugin: [no-unnecessary-type-parameters] should parenthesize type in suggestion fixer if necessary (#10907)
- eslint-plugin: [unified-signatures] exempt
thisfrom optional parameter overload check (#11005) - eslint-plugin: [prefer-nullish-coalescing] fix parenthesization bug in suggestion (#11098)
- typescript-estree: ensure consistent TSMappedType AST shape (#11086)
- typescript-estree: correct
TSImportTypeproperty name whenassert(#11115)
❤️ Thank You
- Andy Edwards
- Dima Barabash @dbarabashh
- Kirk Waiblinger @kirkwaiblinger
- mdm317
- overlookmotel
- Sasha Kondrashov
- Yukihiro Hasegawa @y-hsgw
You can read about our versioning strategy and releases on our website.
8.31.1 (2025-04-28)
🩹 Fixes
- eslint-plugin: [no-unnecessary-condition] downgrade fix to suggestion (#11081)
❤️ Thank You
- Kirk Waiblinger @kirkwaiblinger
You can read about our versioning strategy and releases on our website.
8.31.0 (2025-04-21)
🚀 Features
- eslint-plugin: [no-unnecessary-type-assertion] add option to ignore string const assertions (#10979)
🩹 Fixes
- typescript-eslint: address bugs in
config()around global ignores (#11065) - typescript-eslint: gracefully handle invalid flat config objects in config helper (#11070)
❤️ Thank You
- Kirk Waiblinger @kirkwaiblinger
- Nicolas Le Cam
You can read about our versioning strategy and releases on our website.
8.30.1 (2025-04-14)
🩹 Fixes
- eslint-plugin: fix mistake with eslintrc config generation (#11072)
❤️ Thank You
- Kirk Waiblinger @kirkwaiblinger
You can read about our versioning strategy and releases on our website.
8.30.0 (2025-04-14)
🚀 Features
- eslint-plugin: [no-explicit-any] suggest to replace keyof any with PropertyKey (#11032)
🩹 Fixes
- eslint-plugin: [promise-function-async] use a different error message for functions with promise and non-promise types (#10950)
- typescript-estree: use token type of
PrivateIdentifierinstead ofIdentifierfor private identifiers (#11023)
❤️ Thank You
- Dima Barabash @dbarabashh
- Ronen Amiel
You can read about our versioning strategy and releases on our website.
8.29.1 (2025-04-07)
🩹 Fixes
- eslint-plugin: [no-deprecated] report on deprecated imported variable used as property (#10998)
- typescript-estree: use token type of
Numericinstead ofIdentifierfor bigint literals (#11021)
❤️ Thank You
- Ronen Amiel
You can read about our versioning strategy and releases on our website.
8.29.0 (2025-03-31)
🚀 Features
- eslint-plugin: [prefer-nullish-coalescing] create
ignoreIfStatementsoption (#11000)
🩹 Fixes
- eslint-plugin: [no-unnecessary-condition] don't report on unnecessary optional array index access when
noUncheckedIndexedAccessis enabled (#10961) - eslint-plugin: [use-unknown-in-catch-callback-variable] remove fixable property (#10993)
- eslint-plugin: [prefer-for-of] fix false positive when using erasable type syntax within update expressions (#10981)
- eslint-plugin: support arbitrary extensions in definition files (#10957)
- eslint-plugin: [no-array-constructor] remove optional chaining exemption (#10963)
❤️ Thank You
- Dima Barabash @dbarabashh
- Kim Sang Du @developer-bandi
- Olivier Zalmanski @OlivierZal
- Ronen Amiel
- Yannick Decat @mho22
- zyoshoka @zyoshoka
You can read about our versioning strategy and releases on our website.
8.28.0 (2025-03-24)
🚀 Features
- eslint-plugin: [prefer-nullish-coalescing] support
ifstatement assignment (??=) and fix several minor bugs (#10861)
🩹 Fixes
- eslint-plugin: [no-unsafe-function-type] remove fixable property (#10986)
❤️ Thank You
- Olivier Zalmanski @OlivierZal
- Yannick Decat @mho22
You can read about our versioning strategy and releases on our website.
8.27.0 (2025-03-17)
🚀 Features
- utils: support
DeprecatedInfoforrule.meta.deprecated(#10932)
🩹 Fixes
- deps: update eslint monorepo to v9.22.0 (#10952)
- typescript-estree: fix span start for decorated
AssignmentPatternfunction parameter (#10939)
❤️ Thank You
- ntnyq @ntnyq
- Ronen Amiel
You can read about our versioning strategy and releases on our website.
8.26.1 (2025-03-10)
🩹 Fixes
- eslint-plugin: [prefer-nullish-coalescing] treat
any/unknownas eligible for nullish coalescing (#10865) - eslint-plugin: [no-unsafe-return] handle recursive type (#10883)
- rule-tester: export
TestLanguageOptions(#10930)
❤️ Thank You
- Dave @reduckted
- Kirk Waiblinger @kirkwaiblinger
- YeonJuan @yeonjuan
You can read about our versioning strategy and releases on our website.
8.26.0 (2025-03-03)
🚀 Features
- support TypeScript 5.8 (#10903)
- eslint-plugin: [no-unnecessary-type-parameters] special case tuples and parameter location arrays as single-use (#9536)
- eslint-plugin: [no-unused-var] handle implicit exports in declaration files (#10714)
- eslint-plugin: [explicit-module-boundary-types] add an option to ignore overload implementations (#10889)
- eslint-plugin: [unified-signatures] support ignoring overload signatures with different JSDoc comments (#10781)
- rule-tester: export
TestLanguageOptions(#10892) - scope-manager: only call Object.entries once for each lib (#10647)
🩹 Fixes
- deps: update dependency typedoc-plugin-markdown to v4.4.2 (#10877)
- eslint-plugin: [unified-signatures] does not differentiate truly private methods (#10806)
- eslint-plugin: [no-invalid-void-type] report
accessorproperties with an invalidvoidtype (#10864) - eslint-plugin: [no-unnecessary-type-assertion] handle unknown (#10875)
- rule-tester: Add missing
parserdependency (#10909)
❤️ Thank You
- Andrea Simone Costa @jfet97
- Dave @reduckted
- David Michon
- Dirk Luijk @dirkluijk
- fregante @fregante
- Ronen Amiel
- YeonJuan @yeonjuan
- Yukihiro Hasegawa @y-hsgw
You can read about our versioning strategy and releases on our website.
8.25.0 (2025-02-24)
🚀 Features
- eslint-plugin: [no-misused-spread] add suggestions (#10719)
🩹 Fixes
- ast-spec: replace
attributeswithoptionsproperty inTSImportType(#10691) - eslint-plugin: [unified-signatures] handle getter-setter (#10818)
- eslint-plugin: [no-deprecated] report usage of deprecated private identifiers (#10844)
- eslint-plugin: [prefer-nullish-coalescing] report on chain expressions in a ternary (#10708)
- typescript-estree: align TS module nodes to namespaces (#10504)
- visitor-keys: update keys for
ImportAttribute(#10649)
❤️ Thank You
- Anthony Fu
- fisker Cheung @fisker
- Josh Goldberg ✨
- Olivier Zalmanski @OlivierZal
- Ronen Amiel
- YeonJuan @yeonjuan
You can read about our versioning strategy and releases on our website.
8.24.1 (2025-02-17)
🩹 Fixes
- deps: update eslint monorepo to v9.20.0 (#10834)
- eslint-plugin: [no-inferrable-types] handle accessor (#10780)
- eslint-plugin: [no-unnecessary-template-expression] ignore enum and enum members (#10782)
- eslint-plugin: [no-unsafe-assignment] report on an
anyvalue assigned as an initializer of anaccessorproperty (#10785) - eslint-plugin: [consistent-generic-constructors] check
accessorclass properties (#10789) - eslint-plugin: [prefer-return-this-type] check
accessorproperties with a function initializer (#10794) - eslint-plugin: [explicit-module-boundary-types] check
accessorclass properties with a function initializer (#10804) - eslint-plugin: [explicit-member-accessibility] check
accessorclass properties for missing accessibility modifier (#10805) - eslint-plugin: [no-deprecated] don't report on deprecated
accessorproperty declaration (#10813) - eslint-plugin: [no-misused-promises] don't report on
staticaccessorproperties (#10814) - eslint-plugin: [class-methods-use-this] check
accessormethods with a function initializer (#10796)
❤️ Thank You
- Ronen Amiel
- YeonJuan
You can read about our versioning strategy and releases on our website.
8.24.0 (2025-02-10)
🚀 Features
- eslint-plugin: [no-unnecessary-condition] make
allowConstantLoopConditionsmore granular (#10639) - utils: add
reportUnusedInlineConfigsto LinterOptions (#10718)
🩹 Fixes
- ast-spec: correct YieldExpression.argument type (#10799)
- eslint-plugin: [restrict-plus-operands] report adding bigints to strings when
allowNumberAndStringisfalse(#10737) - eslint-plugin: [no-misused-spread] correct and elaborate string spread report message (#10751)
❤️ Thank You
- Flo Edelmann @FloEdelmann
- Josh Goldberg ✨
- Mark de Dios @peanutenthusiast
- noah
- Ronen Amiel
You can read about our versioning strategy and releases on our website.
8.23.0 (2025-02-03)
🚀 Features
- eslint-plugin: [no-unnecessary-boolean-literal-compare] enforce strictNullChecks (#10712)
- types: add strict
parenttypes for function-declaration, default-export and named-export nodes (#10685)
🩹 Fixes
- bump ts-api-utils to ^2.0.1 (#10761)
- deps: update eslint monorepo to v9.19.0 (#10752)
- eslint-plugin: [no-unnecessary-type-assertion] should report readonly class properties with a literal initializer (#10618)
- eslint-plugin: [switch-exhaustiveness-check] suggest with qualified name (#10697)
- eslint-plugin: [no-unnecessary-template-expression] allow interpolating type parameter in type context (#10739)
- eslint-plugin: [prefer-nullish-coalescing] fix missing return (#10732)
- eslint-plugin: [dot-notation] handle noPropertyAccessFromIndexSignature true (#10644)
- eslint-plugin: [no-restricted-imports] support regex option (#10699)
- eslint-plugin: [no-shadow] ignore declare variables in definition files shadowing global variables (#10710)
❤️ Thank You
- Josh Goldberg ✨
- Olivier Zalmanski @OlivierZal
- Ronen Amiel
- Ryan Poon @sopa301
- YeonJuan @yeonjuan
- Yukihiro Hasegawa @y-hsgw
You can read about our versioning strategy and releases on our website.
8.22.0 (2025-01-27)
🚀 Features
- parser: add standalone isolatedDeclarations option (#10499)
🩹 Fixes
- eslint-plugin: [prefer-nullish-coalescing] doesn't report on ternary but on equivalent || (#10517)
- eslint-plugin: [no-duplicate-type-constituents] handle nested types (#10638)
- eslint-plugin: [no-shadow] don't report unnecessarily on valid ways of using module augmentation (#10616)
- eslint-plugin: [no-extraneous-class] handle accessor keyword (#10678)
- eslint-plugin: [prefer-readonly] autofixer doesn't add type to property that is mutated in the constructor (#10552)
- eslint-plugin: [no-unnecessary-template-expression] handle template literal type (#10612)
- type-utils: support matching intersection types in
TypeOrValueSpecifierwith aPackageSpecifier(#10667)
❤️ Thank You
- Josh Goldberg ✨
- mdm317
- Olivier Zalmanski @OlivierZal
- Ronen Amiel
- YeonJuan @yeonjuan
You can read about our versioning strategy and releases on our website.
8.21.0 (2025-01-20)
🚀 Features
- ast-spec: support import attributes in
TSImportType(#10640)
🩹 Fixes
- eslint-plugin: [no-unnecessary-type-arguments] handle type args on jsx (#10630)
- eslint-plugin: check JSX spread elements for misused spread usage (#10653)
- eslint-plugin: [no-for-in-array] report on any type which may be an array or array-like (#10535)
- eslint-plugin: [no-base-to-string] don't crash for recursive array or tuple types (#10633)
- eslint-plugin: [no-duplicate-enum-values] handle template literal (#10675)
- eslint-plugin-internal: [debug-namespace] on windows (#10661)
- rule-tester: handle window root path (#10654)
- scope-manager: add a reference for JSX closing element if it exists (#10614)
❤️ Thank You
- Arya Emami @aryaemami59
- Ronen Amiel
- YeonJuan @yeonjuan
You can read about our versioning strategy and releases on our website.
8.20.0 (2025-01-13)
🚀 Features
- standardize debug namespaces to file paths (#10599)
- eslint-plugin: [no-misused-spread] add new rule (#10551)
- eslint-plugin: [no-deprecated] add allow options (#10585)
- eslint-plugin: [consistent-type-assertions] add arrayLiteralTypeAssertions options (#10565)
🩹 Fixes
- eslint-plugin: [no-shadow] ignore ordering of type declarations (#10593)
- eslint-plugin: [no-unnecessary-condition] don't flag optional chaining for union types with an unconstrained type parameters (#10602)
❤️ Thank You
- Josh Goldberg ✨
- Ronen Amiel
- YeonJuan @yeonjuan
You can read about our versioning strategy and releases on our website.
8.19.1 (2025-01-06)
🩹 Fixes
- eslint-plugin: [no-base-to-string] check array generic type (#10437)
- eslint-plugin: [no-shadow] report correctly on parameters of functions declared with the
declarekeyword (#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
ignoreConditionalTestsinvolving boolean!operator (#10299) - rule-tester: run method - avoid to infer type parameter from
testsparam (#10324) - typescript-eslint: allow infinitely deep array nesting in config function and extends (#10333)
- utils: add new optional
languagefield toFlatConfig.Configtype (#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 usingstatements (#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
optionsproperty toImportExpressionnode (#10255) - eslint-plugin: disable
no-class-assignrule ineslint-recommendedconfig (#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
overridekeyword (#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
namefield to extended configs inconfighelper (#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
allowBitwiseExpressionsis 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
TSSatisfiesExpressionandTSTypeAssertion(#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 --evalscript (#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
NewExpressionas a parent ofSpreadElement(#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
allowoption forrestrict-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
([ undefinedfor 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
globbyw/fast-glob(#9518) - typescript-estree: reload project service once when file config isn't found (#9853)
🩹 Fixes
- ast-spec: use
Expressionin argument ofThrowStatement(#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
TSSatisfiesExpressioninRuleListenerBaseSelectors(#9832) - utils: add
TSDeclareFunctiontofunctionTypeTypes(#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-awaitto removeasynckeyword (#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
abstractand 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
reportUnusedIgnorePatternoption (#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
projectServiceindisabled-type-checkedshared 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
suggestionsto tests from #9263checkThenables(#9515, #9263) - eslint-plugin: [restrict-template-expressions] don't report tuples if
allowArrayoption 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_useProjectServiceindisabled-type-checkedshared 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
RuleTesterexport (#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
🩹 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,.generatorondeclare 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
ignoreoption (#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(deprecateno-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
checkDuplicateTestCasesfrom ESLint (#9026)
🩹 Fixes
- no-useless-template-expression -> no-unnecessary-template-expression (#9174)
- eslint-plugin: [no-unnecessary-type-assertion] combine template literal check with
constvariable 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
EmptyStatementtoStatement(#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
filesandignores(#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-symbolwithno-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
namefield 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
booleanandfalse(#8685) - eslint-plugin: [no-unnecessary-type-assertion] avoid remove const casting on template literals with expressions inside (#8740)
- typescript-eslint: declare peer dependency on
utilsto 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
allowArrayoption (#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.nodeconstraints inpackage.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
ConfigWithExtendstype (#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
ignoresto all extended configs passed toconfighelper 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/eslintincompatibilities, add tests (#8460) - utils: use mergeable interface for
settingsproperty (#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
JSXElementtype to theJSXAttribute['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
askeyword (#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
usingas the variable keyword forfor..inloops (#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
patternsorpathsin 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
defaultcase on an already exhaustiveswitch(#7539) (6a219bd)
You can read about our versioning strategy and releases on our website.
6.16.0 (2023-12-25)
Bug Fixes
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.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
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
ignoreClassesThatImplementAnInterfaceis 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-minusrule (#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
isTTYversion check if user passesloggerFnon unsupported TypeScript version warning (#7739) (9656e13) - utils: add ESLint
CodePathselector types (#7551) (99a026f) - utils: update types to reflect
RuleContextandSourceCodechanges and deprecations (#7812) (b73d8b2)
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
parserfallback logic (#7754) (34c23e0) - type-utils: treat custom type roots as external (#6870) (b85f744)
Features
- eslint-plugin: [max-params] don't count
this: voidparameter (#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
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.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.0 (2023-09-11)
Bug Fixes
- eslint-plugin: [no-restricted-imports] disallow side effect imports when allowTypeImports is enabled (#7560) (4908905)
Features
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.0 (2023-08-14)
Bug Fixes
- eslint-plugin: [non-nullable-type-assertion-style] consider operator precedence when fixing (#7289) (bad37a2)
- eslint-plugin: [strict-boolean-expressions] replace dangerous fixer with suggestions (#7394) (ad8401a)
- typescript-estree: support
declareandexportmodifiers for nested namespace declaration (#7410) (49a53f0) - utils: add new properties since eslint 8.40.0 (#7460) (660aff7)
- utils: add to JSONSchema4Type missing Array and Object (#7406) (60df0bb), closes /github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/json-schema/index.d.ts#L30
- utils: remove deprecate tag added in #7460 (#7463) (c225b12)
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
allowTypeImportsenabled (#7379) (cc9a46d)
Features
- eslint-plugin: [prefer-nullish-coalescing] allow
ignorePrimitivesoption to betrue(#7331) (dfcafae)
Reverts
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
overrideon 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
exportsfield in package.json files (#6550) (53776c2) - utils: removed
TRuleListenergeneric from thecreateRule(#5036) (361f8bc), closes #5834 #5882 #5864
chore
Features
- add new package
rule-tester(#6777) (2ce1c1d) - add package.json exports for public packages (#6458) (d676683)
- bump minimum supported TS version to 4.2.4 (#5915) (a8e71d5)
- bump ts-api-utils to v0.0.21 (#6459) (3915661)
- bump ts-api-utils to v0.0.22 (#6472) (b88cd23)
- create TSTypeQuery node when TSImportType has isTypeOf (#3076) (2b69b65), closes #5834 #5882 #5864
- drop support for ESLint v6 (#5972) (bda806d)
- drop support for node v12 (#5918) (7e3fe9a)
- drop support for node v14 and test against node v20 (#7022) (e6235bf)
- eslint-plugin: [prefer-nullish-coalescing]: add support for assignment expressions (#5234) (4bdbe67)
- eslint-plugin: [prefer-optional-chain] handle cases where the first operands are unrelated to the rest of the chain and add type info (#6397) (02a37c4)
- eslint-plugin: [prefer-readonly-parameter-types] added an optional type allowlist (#4436) (c9427b7)
- eslint-plugin: [restrict-plus-operands] change checkCompoundAssignments to skipCompoundAssignments (#7027) (dc801d8)
- eslint-plugin: add config that disables type-aware linting (#6470) (3b063cf)
- eslint-plugin: apply final v6 changes to configs (#7110) (c13ce0b)
- eslint-plugin: deprecate no-type-alias (#6229) (820bdf2)
- eslint-plugin: final final config changes for v6 (#7157) (e35c5c1)
- eslint-plugin: rework configs: recommended, strict, stylistic; -type-checked (#5251) (5346b5b), closes #5036 #5834 #5882 #5864 #3076 #5834 #5882 #5864 #5889 #5834 #5882 #5864 #5883 #4863 #5381 #5256 #5399
- experimental-utils: console.warn on import of experimental-utils (#6179) (0b7476b)
- fork json schema types for better compat with ESLint rule validation (#6963) (a4967f2)
- improve error location (#6556) (355adf0)
- improve rule schemas, add test to validate schemas, add tooling to generate schema types (#6899) (acc1a43)
- made BaseNode.parent non-optional (#5252) (a4768f3), closes #5036 #5834 #5882 #5864 #3076 #5834 #5882 #5864 #5889 #5834 #5882 #5864 #5883 #4863 #5381 #5256 #5399
- raise tsconfig target to ES2021 (#5981) (2a5e20f)
- remove
experimental-utils(#6468) (71adbc5) - remove
RuleTesterin/utilsin favour of the new/rule-testerpackage (#6816) (c33f497) - remove moduleResolver API (#6609) (f0f45a9)
- remove partial type-information program (#6066) (7fc062a)
- remove semantically invalid properties from TSEnumDeclaration, TSInterfaceDeclaration and TSModuleDeclaration (#4863) (844875c)
- scope-manager: ignore ECMA version (#5889) (f2330f7), closes #5834 #5882 #5864 #5883
- typescript-estree: add type checker wrapper APIs to ParserServicesWithTypeInformation (#6404) (62d5755)
- typescript-estree: added allowInvalidAST option to not throw on invalid tokens (#6247) (a3b177d)
- typescript-estree: allow providing code as a ts.SourceFile (#5892) (af41b7f)
- typescript-estree: check for illegal decorators on function declarations (#6590) (1b39cfd)
- typescript-estree: check modifiers on every node (#6615) (62d6230)
- typescript-estree: deprecate createDefaultProgram (#5890) (426d6b6)
- typescript-estree: forbid members in Mapped Type (#6802) (b93458f)
- typescript-estree: remove optionality from AST boolean properties (#6274) (df131e2)
- typescript-estree: remove parseWithNodeMaps (#7120) (e2a0a76)
- typescript-estree: strict class heritage clauses check (#6576) (530185b)
- typescript-estree: throw errors for object methods without function bodies (#6589) (1d78576)
- typescript-estree: throw errors on interface with implements (#6551) (67e05c8)
- typescript-estree: throw errors when abstract property has initializer (#6613) (dcdbc76)
- typescript-estree: warn on deprecated AST property accesses (#6525) (79c058d)
- utils: remove (ts-)eslint-scope types (#5256) (df54175)
- utils: remove obsolete
meta.docs.suggestionrule type (#5967) (f424b2a)
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.suggestionproperty - 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
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.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.11 (2023-06-12)
Note: Version bump only for package @typescript-eslint/typescript-eslint
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
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
- eslint-plugin: [lines-around-comment] add extension rule (#5327) (d55211c)
- eslint-plugin: [member-ordering] add support for grouping readonly fields (#6349) (9d3bdfc)
- eslint-plugin: [no-unnecessary-cond] check logical assignments (#6594) (dbc203a)
- parser: add exported meta object (#6586) (d05c3d8)
- typescript-estree: support
constmodifiers for type parameters (#6600) (f3c6373) - update TypeScript to 5.0 RC (#6570) (36ef0e1)
- use @eslint-community dependencies (#6603) (5f6ed73)
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
.kindtoTSModuleDeclaration(#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
ThisExpressionandPrivateIdentifiererrors (#6028) (85e783c) - eslint-plugin: [prefer-optional-chain] fixer produces wrong logic (#5919) (b0f6c8e), closes #1438
Features
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.SatisfiesExpressionon old TS versions (#6076) (1302b30)
Features
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.projectconfig (#5999) (530e0e6)
Features
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.baras a valid match for the rule (#5594) (923d486)
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
RuleTesterAPI 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
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.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
SpreadElementtoArrayExpression.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
5.23.0 (2022-05-09)
Bug Fixes
- ast-spec: correct
AwaitExpression.argumenttype (#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.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
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
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-constituentsrule (#4378) (63d051e) - eslint-plugin: add
no-useless-empty-exportrule (#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
isNotTokenOfTypeWithConditionsout ofast-utils'predicates(#4502) (66501d6)
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
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]
typeStatementTypes can't differenciate from variable (#4270) (bfc4324) - eslint-plugin: [strict-boolean-expression] false positive for truthy boolean (#4275) (72c2e41)
- eslint-plugin:
array-typemarkAST_NODE_TYPES.TSBigIntKeywordas simple (#4274) (74e544e) - eslint-plugin: handle method overloading in
semi(#4318) (3b87b49) - experimental-utils: support immutable members (#3844) (3d33a77)
Features
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
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.0.0 (2021-10-11)
Bug Fixes
- eslint-plugin: [explicit-member-accessibility] report
TSAbstractPropertyDefinitionandTSAbstractMethodDefinitionproperly (#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
sourceof ExportNamedDeclaration to Literal from Expression (#3763) (dc5a0f5)
Features
- ast-spec: bring
Nodeobjects in line with ESTree (#3771) (dd14064) - eslint-plugin: remove
objectfromban-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.categoryfrom 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
isNodeOfTypesout ofast-utils'predicates(#3836) (0cc509b) - typescript-estree: remove legacy
useJSXTextNodeoption (#3109) (5b84b98) - support ESLint v8 (#3737) (4ca62ae)
- experimental-utils: remove
getCommentsfromESLintSourceCodetypes (#3766) (165a507)
BREAKING CHANGES
- eslint-plugin:
ban-typesno longer reportsobjectby default
4.33.0 (2021-10-04)
Bug Fixes
- eslint-plugin: [lines-between-class-members] fix
exceptAfterOverloadfor 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
asassertions and types (#3940) (40760f9) - eslint-plugin: [padding-line-between-statements] TSModuleBlock should change scope (#3944) (f8f534e)
- eslint-plugin: [prefer-regexp-exec] check
RegExpwithout flags (#3946) (0868725) - experimental-utils: add
getPhysicalFilename()toRuleContext(#3934) (ee5dfd4) - experimental-utils: require fix in suggestions (#3949) (f022fb1)
Features
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-coalescingrule (#3349) (4e99961) - eslint-plugin: add new extended rule
no-restricted-imports(#3775) (ec5d506) - eslint-plugin-internal: [prefer-ast-types-enum] add
DefinitionTypeenum (#3916) (13b7de5) - Support
'latest'asecmaVersion(#3873) (25a42c0)
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-operatorrule (#3641) (ea40ab6) - eslint-plugin: add extension rule
padding-line-between-statements(#3418) (f79ae9b) - experimental-utils: extract
isNodeOfTypeout ofast-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
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 inast-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&BaseTokenmore 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.0 (2021-06-21)
Bug Fixes
- eslint-plugin: [prefer-regexp-exec] factor in union types (#3434) (ac86a79)
- experimental-utils: expand
RuleTesterconfig properties (#3557) (ffbb3cf) - experimental-utils: fix
eslint-utils' negative predicates' return types (#3462) (1e6016b) - experimental-utils: fix
eslint-utils' negative predicates' return types inast-utils(#3461) (614b0a3) - experimental-utils: make keys for
ReferenceTrackeroptions optional (#3531) (a7fd7bb)
Features
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'soperatortype (#3497) (9e343fd) - ast-spec: specify
PunctuatorToken'svaluetype (#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.21.0 (2021-04-05)
Bug Fixes
- eslint-plugin: [no-type-alias] consider
keyofas 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
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
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
superexpressions inthisassignments (#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
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.projectFolderIgnoreListand deduplicate resolved projects (#2819) (bf904ec), closes #2418 #2814
Features
- eslint-plugin: [naming-convention] add
requireDouble,allowDouble,allowSingleOrDoubleoptions for underscores (#2812) (dd0576a) - eslint-plugin: [naming-convention] add
requiresQuotesmodifier (#2813) (6fc8409), closes #2761 #1483 - eslint-plugin: [naming-convention] add modifier
unused(#2810) (6a06944) - eslint-plugin: [naming-convention] add modifiers
exported,global, anddestructured(#2808) (fb254a1), closes #2239 #2512 #2318 #2802 - eslint-plugin: [naming-convention] allow
destructuredmodifier forparameterselector (#2829) (525d2ff), closes #2828 - eslint-plugin: [naming-convention] split
propertyandmethodselectors into more granularclassXXX,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: voidparameter (#2796) (878dd4a)
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.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
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
allowProtectedClassPropertyAccessoption (#2622) (bbc9e35) - eslint-plugin: [prefer-readonly-parameter-types] add
ignoreInferredTypesoption (#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.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
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
Functiontype (#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
thisreturn (#2437) (7c6fcee) - eslint-plugin: [return-await] don't error for
in-try-catchif the return is in acatchwithout afinally(#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
constas 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
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-errortoallow-with-description(#2351) (a3f163a), closes #2146 - eslint-plugin: [no-unnecessary-condition][strict-boolean-expressions] add option to make the rules error on files without
strictNullChecksturned on (#2345) (9273441) - eslint-plugin: [typedef] remove all defaults (#2352) (a9cd6fb)
- eslint-plugin: add
consistent-type-importsrule (#2367) (58b1c2d) - typescript-estree: switch to globby (#2418) (3a7ec9b), closes #2398
BREAKING CHANGES
- typescript-estree: - removes the ability to supply a
RegExptoprojectFolderIgnoreList, 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.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
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
constvariables (#2291) (156d058) - eslint-plugin: [no-empty-function] add
decoratedFunctionsoption (#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.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
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
ignoreStringArraysoption (#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
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
BigIntwith_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
Importnode type (f199cbd) - typescript-estree: use
TSEmptyBodyFunctionExpressionfor 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
checkArrayPredicatesand 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: trueby default (#2005) (643ec24) - eslint-plugin: [restrict-template-expressions] rename
allowNullabletoallowNullish(#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-recommendedset (#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.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.29.0 (2020-04-20)
Bug Fixes
- eslint-plugin: [no-base-to-string] soft remove
ignoreTaggedTemplateExpressionsoption (#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
isTypeArrayTypeOrUnionOfArrayTypesutil 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
constassertions (#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.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-stylerule (#1582) (b2dbd89) - experimental-utils: expose ast utility functions (#1670) (3eb5d45)
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
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
settingsproperty (#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-commentrule (#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.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.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.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
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
2.3.0 (2019-09-16)
Bug Fixes
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.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 constarrow 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
projectset (#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
LiteraltoRuleListenertypes (#824) (3c902a1) - typescript-estree: fix
istoken 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
projectprovided - 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-schemadependency (#675) (a5398ce) - eslint-plugin: remove imports from typescript-estree (#706) (ceb2d32), closes #705
- eslint-plugin: undo breaking changes to recommended config (93f72e3)
- utils: move
typescriptfrom peer dep to dev dep (#712) (f949355) - utils: RuleTester should not require a parser (#713) (158a417)
Features
1.12.0 (2019-07-12)
Bug Fixes
- eslint-plugin: handle
const;(#633) (430d628), closes #441 - typescript-estree: fix
asyncidentifier token typed asKeyword(#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
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
- eslint-plugin: (EXPERIMENTAL) begin indent rewrite (#439) (6eb97d4)
- eslint-plugin: Add better non-null handling no-unnecessary-type-assertion (4cd5590)
- eslint-plugin: Add func-call-spacing (#448) (92e65ec)
- eslint-plugin: Add new config "eslint-recommended" (#488) (2600a9f)
- eslint-plugin: add no-magic-numbers rule (#373) (43fa09c)
- eslint-plugin: Add semi extension (0962017)
- eslint-plugin: no-inferrable-types: Support more primitives (#442) (4e193ca)
- ts-estree: add preserveNodeMaps option (#494) (c3061f9)
- Move shared types into their own package (#425) (a7a03ce)
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 constis 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
allowExpressionsfalse 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
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
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
1.1.0 (2019-01-23)
Bug Fixes
- eslint-plugin: don’t mark
declare classas 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)