Releases: typescript-eslint/typescript-eslint
v8.57.0
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.
v8.56.1
8.56.1 (2026-02-23)
What's Changed
- chore(deps): update dependency minimatch to v10.2.2 by @benmccann in #12074
You can read about our versioning strategy and releases on our website.
v8.56.0
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.
v8.55.0
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.
v8.54.0
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
- 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.
v8.53.1
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.
v8.53.0
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.
v8.52.0
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.
v8.51.0
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.
v8.50.1
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.