# typescript-eslint changelog > typescript-eslint release notes. - Vendor: typescript-eslint - Category: Developer Tools - Official site: https://typescript-eslint.io/packages/typescript-eslint - Tracked by: What's New (https://whatsnew.fyi/product/typescript-eslint) - Harvested from: GitHub (typescript-eslint/typescript-eslint) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### v8.65.0 - Date: 2026-07-20 - Version: v8.65.0 - Original notes: https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.65.0 - Permalink: https://whatsnew.fyi/product/typescript-eslint/releases/v8.65.0 - **added** — Add warning when TypeScript 7 is detected - **deprecated** — Deprecate no-restricted-imports extension rule - **added** — Add specialized error on enum declaration and member shadowing in no-shadow rule - **added** — Add onUnsupportedTypeScriptVersion option to parser to error on unsupported TypeScript versions - **added** — Throw for invalid import defer syntax in typescript-estree - **fixed** — Handle escaped $ ending regex literals in prefer-string-starts-ends-with rule - **fixed** — Report unbound methods accessed via member expression on union types in unbound-method rule - **fixed** — Don't flag computed assignments with a variable key in no-unnecessary-parameter-property-assignment rule ##### 8.65.0 (2026-07-20) ###### 🚀 Features - add warning when TS 7 is detected ([#12529](https://github.com/typescript-eslint/typescript-eslint/pull/12529)) - **eslint-plugin:** [no-restricted-imports] deprecate extension rule ([#12527](https://github.com/typescript-eslint/typescript-eslint/pull/12527), [#19562](https://github.com/typescript-eslint/typescript-eslint/issues/19562), [#11889](https://github.com/typescript-eslint/typescript-eslint/issues/11889)) - **eslint-plugin:** [no-shadow] specialized error on enum declaration and member shadowing ([#12578](https://github.com/typescript-eslint/typescript-eslint/pull/12578)) - **parser:** add onUnsupportedTypeScriptVersion option to error on unsupported TypeScript versions ([#12465](https://github.com/typescript-eslint/typescript-eslint/pull/12465)) - **typescript-estree:** throw for invalid import defer syntax ([#12552](https://github.com/typescript-eslint/typescript-eslint/pull/12552)) ###### 🩹 Fixes - **eslint-plugin:** [prefer-string-starts-ends-with] handle escaped $ ending regex literals ([#12515](https://github.com/typescript-eslint/typescript-eslint/pull/12515)) - **eslint-plugin:** [unbound-method] report unbound methods accessed via member expression on union types ([#12448](https://github.com/typescript-eslint/typescript-eslint/pull/12448)) - **eslint-plugin:** [no-unnecessary-parameter-property-assignment] don't flag computed assignments with a variable key ([#12568](https://github.com/typescript-eslint/typescript-eslint/pull/12568)) ###### ❤️ Thank You - Evyatar Daud @StyleShit - Josh Goldberg ✨ - Kirk Waiblinger @kirkwaiblinger - Serhii Leniv @Serhii-Leniv - 송재욱 See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.65.0) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### v8.64.0 - Date: 2026-07-13 - Version: v8.64.0 - Original notes: https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.64.0 - Permalink: https://whatsnew.fyi/product/typescript-eslint/releases/v8.64.0 - **added** — Support parsing `import defer` - **added** — Support `using` / `await using` declarations in no-loop-func rule - **deprecated** — Deprecate the no-loop-func rule - **added** — Throw for invalid definite assignment in class properties in typescript-estree - **fixed** — Handle constrained arrays in require-array-sort-compare rule ##### 8.64.0 (2026-07-13) ###### 🚀 Features - support parsing `import defer` ([#12513](https://github.com/typescript-eslint/typescript-eslint/pull/12513)) - **eslint-plugin:** [no-loop-func] support `using` / `await using` declarations and deprecate the rule ([#12500](https://github.com/typescript-eslint/typescript-eslint/pull/12500)) - **typescript-estree:** throw for invalid definite assignment in class properties ([#12543](https://github.com/typescript-eslint/typescript-eslint/pull/12543)) ###### 🩹 Fixes - **eslint-plugin:** [require-array-sort-compare] handle constrained arrays ([#12512](https://github.com/typescript-eslint/typescript-eslint/pull/12512)) ###### ❤️ Thank You - Evyatar Daud @StyleShit - 송재욱 See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.64.0) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### v8.63.0 - Date: 2026-07-06 - Version: v8.63.0 - Original notes: https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.63.0 - Permalink: https://whatsnew.fyi/product/typescript-eslint/releases/v8.63.0 - **added** — eslint-plugin [no-misused-promises] detect async usage of a sync dispose usage - **fixed** — eslint-plugin [method-signature-style] suggest converting readonly function properties instead of emitting invalid syntax - **fixed** — eslint-plugin [no-unnecessary-type-assertion] handle optional-chained calls to overloaded functions - **fixed** — eslint-plugin [no-base-to-string] don't flag a shadowed String() call - **added** — scope-manager export ClassStaticBlockScope ##### 8.63.0 (2026-07-06) ###### 🚀 Features - **eslint-plugin:** [no-misused-promises] detect async usage of a sync dispose usage ([#12426](https://github.com/typescript-eslint/typescript-eslint/pull/12426)) ###### 🩹 Fixes - **eslint-plugin:** [method-signature-style] suggest converting readonly function properties instead of emitting invalid syntax ([#12447](https://github.com/typescript-eslint/typescript-eslint/pull/12447), [#12446](https://github.com/typescript-eslint/typescript-eslint/issues/12446)) - **eslint-plugin:** [no-unnecessary-type-assertion] handle optional-chained calls to overloaded functions ([#12491](https://github.com/typescript-eslint/typescript-eslint/pull/12491), [#12485](https://github.com/typescript-eslint/typescript-eslint/issues/12485)) - **eslint-plugin:** [no-base-to-string] don't flag a shadowed String() call ([#12492](https://github.com/typescript-eslint/typescript-eslint/pull/12492)) - **scope-manager:** export ClassStaticBlockScope ([#12460](https://github.com/typescript-eslint/typescript-eslint/pull/12460)) ###### ❤️ Thank You - Evyatar Daud @StyleShit - Kristjan @KristjanTammekivi - Michael Naumov @mnaoumov - Serhii Leniv @Serhii-Leniv - 송재욱 See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.63.0) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### v8.62.1 - Date: 2026-06-29 - Version: v8.62.1 - Original notes: https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.1 - Permalink: https://whatsnew.fyi/product/typescript-eslint/releases/v8.62.1 - **fixed** — eslint-plugin: [prefer-optional-chain] use suggestion instead of autofix for trailing binary operator - **fixed** — eslint-plugin: [no-unnecessary-boolean-literal-compare] preserve boolean result in fixer for nullable true comparisons - **fixed** — eslint-plugin: [no-unnecessary-type-assertion] parenthesize object literal at left edge of expression statement ##### 8.62.1 (2026-06-29) ###### 🩹 Fixes - **eslint-plugin:** [prefer-optional-chain] use suggestion instead of autofix for trailing binary operator ([#12328](https://github.com/typescript-eslint/typescript-eslint/pull/12328)) - **eslint-plugin:** [no-unnecessary-boolean-literal-compare] preserve boolean result in fixer for nullable true comparisons ([#12365](https://github.com/typescript-eslint/typescript-eslint/pull/12365)) - **eslint-plugin:** [no-unnecessary-type-assertion] parenthesize object literal at left edge of expression statement ([#12443](https://github.com/typescript-eslint/typescript-eslint/pull/12443), [#12418](https://github.com/typescript-eslint/typescript-eslint/issues/12418)) ###### ❤️ Thank You - Kirk Waiblinger @kirkwaiblinger - mdm317 - Patrick Aleite - 송재욱 See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.1) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### v8.62.0 - Date: 2026-06-22 - Version: v8.62.0 - Original notes: https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.0 - Permalink: https://whatsnew.fyi/product/typescript-eslint/releases/v8.62.0 - **changed** — Remove redundant package.json "files" - **fixed** — Add "files" to rule-schema-to-typescript-types ##### 8.62.0 (2026-06-22) ###### 🚀 Features - remove redundant package.json "files" ([#12444](https://github.com/typescript-eslint/typescript-eslint/pull/12444)) ###### 🩹 Fixes - add "files" to rule-schema-to-typescript-types ([#12441](https://github.com/typescript-eslint/typescript-eslint/pull/12441)) ###### ❤️ Thank You - Kirk Waiblinger @kirkwaiblinger See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.0) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### v8.61.1 - Date: 2026-06-15 - Version: v8.61.1 - Original notes: https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.61.1 - Permalink: https://whatsnew.fyi/product/typescript-eslint/releases/v8.61.1 - **fixed** — [consistent-indexed-object-style] do not remove comments when fixing - **fixed** — [no-unnecessary-type-assertion] avoid false positive for template literal expressions - **fixed** — [no-unnecessary-type-assertion] wrap object literal in parens when removing TSTypeAssertion in arrow body - **fixed** — [no-unnecessary-boolean-literal-compare] fix precedence bug in autofix - **fixed** — [no-unnecessary-template-expression] respect ECMAScript line terminators ##### 8.61.1 (2026-06-15) ###### 🩹 Fixes - **eslint-plugin:** [consistent-indexed-object-style] do not remove comments when fixing ([#12396](https://github.com/typescript-eslint/typescript-eslint/pull/12396), [#10577](https://github.com/typescript-eslint/typescript-eslint/issues/10577)) - **eslint-plugin:** [no-unnecessary-type-assertion] avoid false positive for template literal expressions ([#12281](https://github.com/typescript-eslint/typescript-eslint/pull/12281)) - **eslint-plugin:** [no-unnecessary-type-assertion] wrap object literal in parens when removing TSTypeAssertion in arrow body ([#12394](https://github.com/typescript-eslint/typescript-eslint/pull/12394), [#12393](https://github.com/typescript-eslint/typescript-eslint/issues/12393)) - **eslint-plugin:** [no-unnecessary-boolean-literal-compare] fix precedence bug in autofix ([#12413](https://github.com/typescript-eslint/typescript-eslint/pull/12413)) - **eslint-plugin:** [no-unnecessary-template-expression] respect ECMAScript line terminators ([#12388](https://github.com/typescript-eslint/typescript-eslint/pull/12388)) ###### ❤️ Thank You - Anas @anasm266 - Deftera @Deftera186 - Kirk Waiblinger @kirkwaiblinger - lumir - Sarath Francis @sarathfrancis90 See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.61.1) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### v8.61.0 - Date: 2026-06-08 - Version: v8.61.0 - Original notes: https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.61.0 - Permalink: https://whatsnew.fyi/product/typescript-eslint/releases/v8.61.0 - **changed** — Change type of UnaryExpression.prefix to always true - **changed** — Tighten types of ArrowFunction, YieldExpression, TSTypePredicate - **fixed** — Respect ECMAScript line terminators in rule-schema-to-typescript-types ##### 8.61.0 (2026-06-08) ###### 🚀 Features - **ast-spec:** change type of `UnaryExpression.prefix` to always `true` ([#12372](https://github.com/typescript-eslint/typescript-eslint/pull/12372)) - **ast-spec:** tighten types of `ArrowFunction`, `YieldExpression`, `TSTypePredicate` ([#12373](https://github.com/typescript-eslint/typescript-eslint/pull/12373)) ###### 🩹 Fixes - **rule-schema-to-typescript-types:** respect ECMAScript line terminators ([#12374](https://github.com/typescript-eslint/typescript-eslint/pull/12374)) ###### ❤️ Thank You - Kirk Waiblinger @kirkwaiblinger - lumir See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.61.0) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### v8.60.1 - Date: 2026-06-01 - Version: v8.60.1 - Original notes: https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.60.1 - Permalink: https://whatsnew.fyi/product/typescript-eslint/releases/v8.60.1 - **fixed** — eslint-plugin: respect ECMAScript line terminators in ts-comment rules - **fixed** — eslint-plugin: correct no-shadow rule to match ESLint v10 handling ##### 8.60.1 (2026-06-01) ###### 🩹 Fixes - **eslint-plugin:** respect ECMAScript line terminators in ts-comment rules ([#12352](https://github.com/typescript-eslint/typescript-eslint/pull/12352)) - **eslint-plugin:** [no-shadow] correct rule to match ESLint v10 handling ([#12182](https://github.com/typescript-eslint/typescript-eslint/pull/12182)) ###### ❤️ Thank You - lumir - Nevette Bailey @nevette-bailey See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.60.1) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### v8.60.0 - Date: 2026-05-25 - Version: v8.60.0 - Original notes: https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.60.0 - Permalink: https://whatsnew.fyi/product/typescript-eslint/releases/v8.60.0 - **added** — Add updates of RuleTester from upstream - **fixed** — Fix playground TS version selector not working ##### 8.60.0 (2026-05-25) ###### 🚀 Features - **rule-tester:** added updates of RuleTester from upstream ([#12291](https://github.com/typescript-eslint/typescript-eslint/pull/12291)) ###### 🩹 Fixes - playground TS version selector is not working ([#12326](https://github.com/typescript-eslint/typescript-eslint/pull/12326), [#12325](https://github.com/typescript-eslint/typescript-eslint/issues/12325)) ###### ❤️ Thank You - Evyatar Daud @StyleShit - Vinccool96 See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.60.0) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### v8.59.4 - Date: 2026-05-18 - Version: v8.59.4 - Original notes: https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.4 - Permalink: https://whatsnew.fyi/product/typescript-eslint/releases/v8.59.4 - **fixed** — Fix stack overflow in eslint-plugin no-floating-promises rule when using recursive types - **fixed** — Fix project-service to throw error cause in getParsedConfigFileFromTSServer - **fixed** — Export Compatible* types from typescript-eslint to resolve pnpm TS error ##### 8.59.4 (2026-05-18) ###### 🩹 Fixes - **eslint-plugin:** [no-floating-promises] stack overflow when using recursive types ([#12294](https://github.com/typescript-eslint/typescript-eslint/pull/12294)) - **project-service:** throw error cause in `getParsedConfigFileFromTSServer` ([#12321](https://github.com/typescript-eslint/typescript-eslint/pull/12321)) - **typescript-eslint:** export Compatible* types from typescript-eslint to resolve pnpm TS error ([#12340](https://github.com/typescript-eslint/typescript-eslint/pull/12340)) ###### ❤️ Thank You - Evyatar Daud @StyleShit - Kirk Waiblinger @kirkwaiblinger - lumir See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.4) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.