Releases: typescript-eslint/typescript-eslint
v8.58.1
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.
v8.58.0
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.
v8.57.2
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
- 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.
v8.57.1
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.
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.