Skip to content

Releases: typescript-eslint/typescript-eslint

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.

v8.53.0

12 Jan 17:07

Choose a tag to compare

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 "error typed" 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 using declaration (#11910)
  • typescript-estree: forbid invalid class implements (#11934)
  • typescript-estree: forbid invalid "import equals" declaration (#11936)
  • typescript-estree: forbid invalid extends and implements in interface declaration (#11935)

❤️ Thank You

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

v8.52.0

05 Jan 17:06

Choose a tag to compare

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

29 Dec 17:04

Choose a tag to compare

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

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

v8.50.1

22 Dec 17:05

Choose a tag to compare

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

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

v8.50.0

15 Dec 17:07

Choose a tag to compare

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

08 Dec 17:05

Choose a tag to compare

8.49.0 (2025-12-08)

🚀 Features

  • eslint-plugin: use Intl.Segmenter instead of graphemer (#11804)

🩹 Fixes

  • deps: update dependency prettier to v3.7.2 (#11820)

❤️ Thank You

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

v8.48.1

02 Dec 08:44

Choose a tag to compare

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.