Skip to content

Releases: typescript-eslint/typescript-eslint

v8.58.1

08 Apr 01:32

Choose a tag to compare

8.58.1 (2026-04-08)

🩹 Fixes

  • eslint-plugin: [no-unused-vars] fix false negative for type predicate parameter (#12004)

❤️ Thank You

See GitHub Releases for more information.

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

v8.58.0

30 Mar 17:19

Choose a tag to compare

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

See GitHub Releases for more information.

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

v8.57.2

23 Mar 17:18

Choose a tag to compare

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

See GitHub Releases for more information.

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

v8.57.1

16 Mar 17:23

Choose a tag to compare

8.57.1 (2026-03-16)

🩹 Fixes

  • eslint-plugin: [prefer-optional-chain] no report for property on intersection type (#12126)

❤️ Thank You

See GitHub Releases for more information.

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

v8.57.0

09 Mar 17:18

Choose a tag to compare

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 TypeOrValueSpecifier to 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, cooked will be null (#11355)

❤️ Thank You

See GitHub Releases for more information.

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

v8.56.1

23 Feb 17:24

Choose a tag to compare

8.56.1 (2026-02-23)

What's Changed

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

v8.56.0

16 Feb 17:15

Choose a tag to compare

8.56.0 (2026-02-16)

🚀 Features

🩹 Fixes

  • use parser options from context.languageOptions (#12043)

❤️ Thank You

See GitHub Releases for more information.

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

v8.55.0

09 Feb 17:21

Choose a tag to compare

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

See GitHub Releases for more information.

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

v8.54.0

26 Jan 17:09

Choose a tag to compare

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 FlatESLint and LegacyESLint (#11958)

❤️ Thank You

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

v8.53.1

19 Jan 17:06

Choose a tag to compare

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.