Releases: typescript-eslint/typescript-eslint
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.
v8.50.0
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.
v8.49.0
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.
v8.48.1
8.48.1 (2025-12-02)
⏪ Reverts
- eslint-plugin: revert "[no-redundant-type-constituents] use assignability checking for redundancy checks (#10744)" (#11812)
🩹 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.