typescript-eslint

Developer ToolsMIT

typescript-eslint release notes.

Latest v8.70.0 · by typescript-eslintWritten in TypeScriptWebsitetypescript-eslint/typescript-eslintRSS

Release activity

Release activity — 15 releases across 15 days since May 18, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before May 18, 2026. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026
Monday1 release on May 25, 20261 release on Jun 1, 20261 release on Jun 8, 20261 release on Jun 15, 20261 release on Jun 22, 20261 release on Jun 29, 20261 release on Jul 6, 20261 release on Jul 13, 20261 release on Jul 20, 2026No releases on Jul 27, 20261 release on Aug 3, 20261 release on Aug 10, 2026No releases on Aug 17, 20261 release on Aug 24, 20261 release on Aug 31, 20261 release on Sep 7, 2026
TuesdayNo releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 2026No releases on Sep 8, 2026
WednesdayNo releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026No releases on Sep 2, 2026
ThursdayNo releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026No releases on Aug 20, 2026No releases on Aug 27, 2026No releases on Sep 3, 2026
FridayNo releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 2026No releases on Aug 28, 2026No releases on Sep 4, 2026
SaturdayNo releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026

15 releases since May 18, 2026

Changelog

v8.70.0

Latest
Added 2
  • Add no-generated-empty-object-type rule to eslint-plugin
  • Generate per-page social preview cards on website
Changed 1
  • Update pnpm to 12.3.4 and dedupe Docusaurus packages
Fixed 5
  • Update member-ordering rule to not report fields that read fields declared before them
  • Fix no-unnecessary-condition rule false positive on RHS of a nested logical expression
  • Fix no-deprecated rule to report deprecated imported values used in object shorthand properties
  • Avoid discarded tsserver logs in project-service
  • Clarify the parserOptions.project error message in typescript-estree

From typescript-eslint

8.70.0 (2026-09-07)
🚀 Features
  • eslint-plugin: [no-generated-empty-object-type] add rule (#12730)
  • website: generate per-page social preview cards (#12734)
🩹 Fixes
  • use stable release of pnpm 12 (#12808)
  • update pnpm to 12.3.4 and dedupe Docusaurus packages (#12829)
  • eslint-plugin: [member-ordering] don't report fields that read fields declared before them (#12729)
  • eslint-plugin: [no-unnecessary-condition] no false positive on RHS of a nested logical expression (#12728)
  • eslint-plugin: [no-deprecated] report deprecated imported values used in object shorthand properties (#12780)
  • project-service: avoid discarded tsserver logs (#12748)
  • typescript-estree: clarify the parserOptions.project error message (#12817)
❤️ Thank You
  • Barry @barry166
  • Evyatar Daud @StyleShit
  • Josh Goldberg
  • Josh Goldberg ✨ @JoshuaKGoldberg
  • Kirk Waiblinger @kirkwaiblinger
  • Ulrich Stark @ulrichstark
  • 송재욱

See GitHub Releases for more information.

You can read about our versioning strategy and releases on our website.

View originalPermalink
How v8.70.0 went

v8.69.0

Added 1
  • Add flagUnions option for checkConditionals in no-misused-promises rule
Fixed 4
  • Use scope analysis instead of type checking for merged namespaces in no-mixed-enums rule
  • Compare type parameters by constraint instead of name in unified-signatures rule
  • Report void on non-call expressions in no-meaningless-void-operator rule
  • Respect allowJs playground config on website

From typescript-eslint

8.69.0 (2026-08-31)
🚀 Features
  • eslint-plugin: [no-misused-promises] add flagUnions option for checkConditionals (#12603)
🩹 Fixes
  • eslint-plugin: [no-mixed-enums] use scope analysis instead of type checking for merged namespaces (#12731)
  • eslint-plugin: [unified-signatures] compare type parameters by constraint instead of name (#12741)
  • eslint-plugin: [no-meaningless-void-operator] report void on non-call expressions (#12727)
  • website: respect allowJs playground config (#12744)
❤️ Thank You
  • Abdu Alim Arlikhozhaev @Arlikhozhaev
  • Evyatar Daud @StyleShit
  • Josh Goldberg ✨
  • wonbeanie @wonbeanie
  • Younsang Na @nayounsang

See GitHub Releases for more information.

You can read about our versioning strategy and releases on our website.

View originalPermalink
How v8.69.0 went

v8.68.0

Added 2
  • Add fix suggestions to strict-void-return rule
  • Support ESLint rule meta.languages in utils
Fixed 7
  • Deduplicate types in unified-signatures rule report
  • Prevent return-await autofix from breaking code in arrow-functions
  • Report identical signatures in unified-signatures rule
  • Prevent stack overflow in no-unnecessary-type-assertion with recursive types
  • Fix no-floating-promises false negative when ignoreVoid is false in ArrowFunctionExpression
  • Ignore suggestions in no-empty-object-type that result in invalid interfaces and export defaults
  • Fix website playground crash on extends configs

From typescript-eslint

8.68.0 (2026-08-24)
🚀 Features
  • eslint-plugin: [strict-void-return] add fix suggestions (#12086)
  • utils: support ESLint rule meta.languages (#12663)
🩹 Fixes
  • eslint-plugin: [unified-signatures] deduplicate types in report (#12656)
  • eslint-plugin: [return-await] prevent autofix from breaking code in arrow-functions (#12707)
  • eslint-plugin: [unified-signatures] report identical signatures (#12678)
  • eslint-plugin: [no-unnecessary-type-assertion] prevent stack overflow in recursive types (#12711)
  • eslint-plugin: [no-floating-promises] setting ignoreVoid: false results in false negative in ArrowFunctionExpression (#12646)
  • eslint-plugin: [no-empty-object-type] ignore suggestions that result in invalid interfaces and export defaults (#12739)
  • website: playground crashes on extends configs (#12608)
  • website: account for thanks.dev and out-of-band donors in sponsors list (#12735)
❤️ Thank You
  • Evyatar Daud @StyleShit
  • Hugo @hugop95
  • Josh Goldberg ✨
  • Niki @phaux
  • Thiago Barbosa
  • Younsang Na @nayounsang

See GitHub Releases for more information.

You can read about our versioning strategy and releases on our website.

View originalPermalink
How v8.68.0 went

v8.67.0

Added 1
  • Export basic globs for using tseslint

From typescript-eslint

8.67.0 (2026-08-10)
🚀 Features
  • typescript-eslint: export basic globs for using tseslint (#12105)
❤️ Thank You
  • Evyatar Daud @StyleShit
  • Josh Goldberg ✨
  • Kirk Waiblinger @kirkwaiblinger

See GitHub Releases for more information.

You can read about our versioning strategy and releases on our website.

View originalPermalink
How v8.67.0 went

v8.66.0

Added 1
  • Handle import.defer() as ImportExpression in typescript-estree
Changed 1
  • List onUnsupportedTypeScriptVersion in parser options documentation
Fixed 5
  • [no-unnecessary-type-conversion] ignore shadowed built-ins
  • [prefer-nullish-coalescing] handle shadowed Boolean calls
  • [no-useless-default-assignment] don't report defaults used by other overloads
  • [no-unnecessary-type-parameters] check MappedType key remapping
  • [class-literal-property-style] preserve type annotations and don't drop decorators

From typescript-eslint

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 onUnsupportedTypeScriptVersion in 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.

View originalPermalink
How v8.66.0 went

v8.65.0

Added 4
  • Add warning when TypeScript 7 is detected
  • Add specialized error on enum declaration and member shadowing in no-shadow rule
  • Add onUnsupportedTypeScriptVersion option to parser to error on unsupported TypeScript versions
  • Throw for invalid import defer syntax in typescript-estree
Fixed 3
  • Handle escaped $ ending regex literals in prefer-string-starts-ends-with rule
  • Report unbound methods accessed via member expression on union types in unbound-method rule
  • Don't flag computed assignments with a variable key in no-unnecessary-parameter-property-assignment rule
Deprecated 1
  • Deprecate no-restricted-imports extension rule

From typescript-eslint

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.

View originalPermalink
How v8.65.0 went

v8.64.0

Added 3
  • Support parsing `import defer`
  • Support `using` / `await using` declarations in no-loop-func rule
  • Throw for invalid definite assignment in class properties in typescript-estree
Fixed 1
  • Handle constrained arrays in require-array-sort-compare rule
Deprecated 1
  • Deprecate the no-loop-func rule

From typescript-eslint

8.64.0 (2026-07-13)
🚀 Features
  • support parsing import defer (#12513)
  • eslint-plugin: [no-loop-func] support using / await using declarations 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.

View originalPermalink
How v8.64.0 went

v8.63.0

Added 2
  • eslint-plugin [no-misused-promises] detect async usage of a sync dispose usage
  • scope-manager export ClassStaticBlockScope
Fixed 3
  • eslint-plugin [method-signature-style] suggest converting readonly function properties instead of emitting invalid syntax
  • eslint-plugin [no-unnecessary-type-assertion] handle optional-chained calls to overloaded functions
  • eslint-plugin [no-base-to-string] don't flag a shadowed String() call

From typescript-eslint

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.

View originalPermalink
How v8.63.0 went

v8.62.1

Fixed 3
  • eslint-plugin: [prefer-optional-chain] use suggestion instead of autofix for trailing binary operator
  • eslint-plugin: [no-unnecessary-boolean-literal-compare] preserve boolean result in fixer for nullable true comparisons
  • eslint-plugin: [no-unnecessary-type-assertion] parenthesize object literal at left edge of expression statement

From typescript-eslint

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.

View originalPermalink
How v8.62.1 went

v8.62.0

Changed 1
  • Remove redundant package.json "files"
Fixed 1
  • Add "files" to rule-schema-to-typescript-types

From typescript-eslint

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.

View originalPermalink
How v8.62.0 went

v8.61.1

Fixed 5
  • [consistent-indexed-object-style] do not remove comments when fixing
  • [no-unnecessary-type-assertion] avoid false positive for template literal expressions
  • [no-unnecessary-type-assertion] wrap object literal in parens when removing TSTypeAssertion in arrow body
  • [no-unnecessary-boolean-literal-compare] fix precedence bug in autofix
  • [no-unnecessary-template-expression] respect ECMAScript line terminators

From typescript-eslint

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.

View originalPermalink
How v8.61.1 went

v8.61.0

Changed 2
  • Change type of UnaryExpression.prefix to always true
  • Tighten types of ArrowFunction, YieldExpression, TSTypePredicate
Fixed 1
  • Respect ECMAScript line terminators in rule-schema-to-typescript-types

From typescript-eslint

8.61.0 (2026-06-08)
🚀 Features
  • ast-spec: change type of UnaryExpression.prefix to always true (#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.

View originalPermalink
How v8.61.0 went

v8.60.1

Fixed 2
  • eslint-plugin: respect ECMAScript line terminators in ts-comment rules
  • eslint-plugin: correct no-shadow rule to match ESLint v10 handling

From typescript-eslint

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.

View originalPermalink
How v8.60.1 went

v8.60.0

Added 1
  • Add updates of RuleTester from upstream
Fixed 1
  • Fix playground TS version selector not working

From typescript-eslint

8.60.0 (2026-05-25)
🚀 Features
  • rule-tester: added updates of RuleTester from upstream (#12291)
🩹 Fixes
  • playground TS version selector is not working (#12326, #12325)
❤️ Thank You
  • Evyatar Daud @StyleShit
  • Vinccool96

See GitHub Releases for more information.

You can read about our versioning strategy and releases on our website.

View originalPermalink
How v8.60.0 went

v8.59.4

Fixed 3
  • Fix stack overflow in eslint-plugin no-floating-promises rule when using recursive types
  • Fix project-service to throw error cause in getParsedConfigFileFromTSServer
  • Export Compatible* types from typescript-eslint to resolve pnpm TS error

From typescript-eslint

8.59.4 (2026-05-18)
🩹 Fixes
  • eslint-plugin: [no-floating-promises] stack overflow when using recursive types (#12294)
  • project-service: throw error cause in getParsedConfigFileFromTSServer (#12321)
  • typescript-eslint: export Compatible* types from typescript-eslint to resolve pnpm TS error (#12340)
❤️ Thank You
  • Evyatar Daud @StyleShit
  • Kirk Waiblinger @kirkwaiblinger
  • lumir

See GitHub Releases for more information.

You can read about our versioning strategy and releases on our website.

View originalPermalink
How v8.59.4 went
View all

Discussion

If you publish typescript-eslint, you can claim this product by proving you administer its repository.