Releases: typescript-eslint/typescript-eslint
Release list
v8.66.0
8.66.0 (2026-08-03)
🚀 Features
- typescript-estree: handle import.defer() as ImportExpression (#12609)
🩹 Fixes
- eslint-plugin: [no-unnecessary-type-conversion] ignore shadowed built-ins (#12590)
- eslint-plugin: [prefer-nullish-coalescing] handle shadowed Boolean calls (#12591)
- eslint-plugin: [no-useless-default-assignment] don't report defaults used by other overloads (#12607)
- eslint-plugin: [no-unnecessary-type-parameters] check MappedType key remapping (#12588)
- eslint-plugin: [class-literal-property-style] preserve type annotations and don't drop decorators (#12617)
- website: list
onUnsupportedTypeScriptVersionin parser options (#12585)
❤️ Thank You
- Evyatar Daud @StyleShit
- Kirk Waiblinger @kirkwaiblinger
- Steffen Schroeder
- 송재욱
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
v8.65.0
8.65.0 (2026-07-20)
🚀 Features
- add warning when TS 7 is detected (#12529)
- eslint-plugin: [no-restricted-imports] deprecate extension rule (#12527, #19562, #11889)
- eslint-plugin: [no-shadow] specialized error on enum declaration and member shadowing (#12578)
- parser: add onUnsupportedTypeScriptVersion option to error on unsupported TypeScript versions (#12465)
- typescript-estree: throw for invalid import defer syntax (#12552)
🩹 Fixes
- eslint-plugin: [prefer-string-starts-ends-with] handle escaped $ ending regex literals (#12515)
- eslint-plugin: [unbound-method] report unbound methods accessed via member expression on union types (#12448)
- eslint-plugin: [no-unnecessary-parameter-property-assignment] don't flag computed assignments with a variable key (#12568)
❤️ Thank You
- Evyatar Daud @StyleShit
- Josh Goldberg ✨
- Kirk Waiblinger @kirkwaiblinger
- Serhii Leniv @Serhii-Leniv
- 송재욱
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
v8.64.0
8.64.0 (2026-07-13)
🚀 Features
- support parsing
import defer(#12513) - eslint-plugin: [no-loop-func] support
using/await usingdeclarations and deprecate the rule (#12500) - typescript-estree: throw for invalid definite assignment in class properties (#12543)
🩹 Fixes
- eslint-plugin: [require-array-sort-compare] handle constrained arrays (#12512)
❤️ Thank You
- Evyatar Daud @StyleShit
- 송재욱
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
v8.63.0
8.63.0 (2026-07-06)
🚀 Features
- eslint-plugin: [no-misused-promises] detect async usage of a sync dispose usage (#12426)
🩹 Fixes
- eslint-plugin: [method-signature-style] suggest converting readonly function properties instead of emitting invalid syntax (#12447, #12446)
- eslint-plugin: [no-unnecessary-type-assertion] handle optional-chained calls to overloaded functions (#12491, #12485)
- eslint-plugin: [no-base-to-string] don't flag a shadowed String() call (#12492)
- scope-manager: export ClassStaticBlockScope (#12460)
❤️ Thank You
- Evyatar Daud @StyleShit
- Kristjan @KristjanTammekivi
- Michael Naumov @mnaoumov
- Serhii Leniv @Serhii-Leniv
- 송재욱
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
v8.62.1
8.62.1 (2026-06-29)
🩹 Fixes
- eslint-plugin: [prefer-optional-chain] use suggestion instead of autofix for trailing binary operator (#12328)
- eslint-plugin: [no-unnecessary-boolean-literal-compare] preserve boolean result in fixer for nullable true comparisons (#12365)
- eslint-plugin: [no-unnecessary-type-assertion] parenthesize object literal at left edge of expression statement (#12443, #12418)
❤️ Thank You
- Kirk Waiblinger @kirkwaiblinger
- mdm317
- Patrick Aleite
- 송재욱
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
v8.62.0
8.62.0 (2026-06-22)
🚀 Features
- remove redundant package.json "files" (#12444)
🩹 Fixes
- add "files" to rule-schema-to-typescript-types (#12441)
❤️ Thank You
- Kirk Waiblinger @kirkwaiblinger
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
v8.61.1
8.61.1 (2026-06-15)
🩹 Fixes
- eslint-plugin: [consistent-indexed-object-style] do not remove comments when fixing (#12396, #10577)
- eslint-plugin: [no-unnecessary-type-assertion] avoid false positive for template literal expressions (#12281)
- eslint-plugin: [no-unnecessary-type-assertion] wrap object literal in parens when removing TSTypeAssertion in arrow body (#12394, #12393)
- eslint-plugin: [no-unnecessary-boolean-literal-compare] fix precedence bug in autofix (#12413)
- eslint-plugin: [no-unnecessary-template-expression] respect ECMAScript line terminators (#12388)
❤️ Thank You
- Anas @anasm266
- Deftera @Deftera186
- Kirk Waiblinger @kirkwaiblinger
- lumir
- Sarath Francis @sarathfrancis90
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
v8.61.0
8.61.0 (2026-06-08)
🚀 Features
- ast-spec: change type of
UnaryExpression.prefixto alwaystrue(#12372) - ast-spec: tighten types of
ArrowFunction,YieldExpression,TSTypePredicate(#12373)
🩹 Fixes
- rule-schema-to-typescript-types: respect ECMAScript line terminators (#12374)
❤️ Thank You
- Kirk Waiblinger @kirkwaiblinger
- lumir
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
v8.60.1
8.60.1 (2026-06-01)
🩹 Fixes
- eslint-plugin: respect ECMAScript line terminators in ts-comment rules (#12352)
- eslint-plugin: [no-shadow] correct rule to match ESLint v10 handling (#12182)
❤️ Thank You
- lumir
- Nevette Bailey @nevette-bailey
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
v8.60.0
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.