# What changed in @typescript-eslint/eslint-plugin

> 143 changes in @typescript-eslint/eslint-plugin 8 from its official release notes, upgrade guides and advisories: 5 breaking, 3 deprecations, 9 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/@typescript-eslint/eslint-plugin/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @typescript-eslint/eslint-plugin 8

### Breaking changes

- Invalid definite assignment in class properties now throws. (8.64.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8640-2026-07-13)
- The rule reports more cases based on assignability, helping identify additional unnecessary type assertions. (8.59.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8590-2026-04-20)
- The rule now requires strictNullChecks. (8.55.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8550-2026-02-09)
- The rule is no longer marked as fixable. (8.51.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8510-2025-12-29)
- Redundancy checks use assignability checking, which can change which type constituents the rule reports as redundant. (8.48.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8480-2025-11-24)

### Deprecations

- Deprecates the extension rule. (8.65.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8650-2026-07-20)
- The rule is deprecated. (8.64.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8640-2026-07-13)
- The utilities API deprecates defaultOptions in favor of meta.defaultOptions. (8.55.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8550-2026-02-09)

### New APIs and options

- Adds the no-unsafe-enum-assignment rule to detect unsafe enum assignments. (8.71.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8710-2026-09-28)
- Adds the no-generated-empty-object-type rule. (8.70.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8700-2026-09-07)
- Adds the flagUnions option for checkConditionals. (8.69.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8690-2026-08-31)
- Adds TypeOrValueSpecifier support to the rule's allow option. (8.57.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8570-2026-03-09)
- Adds the strict-void-return rule to the ESLint plugin. (8.53.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8530-2026-01-12)
- Adds the no-multiple-lines-of-errors rule to eslint-plugin-internal. (8.52.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8520-2026-01-05)
- The plugin meta now includes a namespace. (8.51.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8510-2025-12-29)
- Adds the no-useless-default-assignment rule to eslint-plugin. (8.50.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8500-2025-12-15)
- A new extension rule is available to report unused private class members. (8.47.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8470-2025-11-17)

### Behavior and default changes

- Adds a warning when TypeScript 7 is detected. (8.65.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8650-2026-07-20)
- Reports specialized errors for shadowing an enum declaration or member. (8.65.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8650-2026-07-20)
- The rule now supports using and await using declarations. (8.64.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8640-2026-07-13)
- Detects async usage of a sync dispose usage. (8.63.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8630-2026-07-06)
- Allows literal loop conditions in for and do loops. (8.57.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8570-2026-03-09)
- The rule fixes some cases to optional syntax. (8.51.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8510-2025-12-29)

### Tooling

- Adds a fixer that removes unused imports. (8.53.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8530-2026-01-12)

### Fixes and other changes

- The rule now parenthesizes constraints in optional tuple elements. (8.71.2) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8712-2026-10-12)
- The rule now counts instantiated mapped type templates. (8.71.2) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8712-2026-10-12)
- The rule now ignores type-only references for after-used. (8.71.2) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8712-2026-10-12)
- The rule now avoids false positives when not using the TypeScript ESLint parser. (8.71.2) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8712-2026-10-12)
- The rule now provides a safe fix when an optional chain ends with a strict null comparison. (8.71.2) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8712-2026-10-12)
- Does not autofix when the declared return type is unknown. (8.71.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8711-2026-10-05)
- Skips argument checks for calls without arguments. (8.71.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8711-2026-10-05)
- Counts instantiated mapped type constraints when checking for unnecessary type parameters. (8.71.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8711-2026-10-05)
- Skips identical types and bounds deep type walks. (8.71.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8711-2026-10-05)
- Reports usedOnlyAsType for partially exported merged declarations. (8.71.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8711-2026-10-05)
- Checks the constrained type when deciding whether to prefer an optional chain. (8.71.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8711-2026-10-05)
- Uses the array argument type constraint when checking sort comparisons. (8.71.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8711-2026-10-05)
- The rule now handles a return outside of any function. (8.71.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8710-2026-09-28)
- The rule now specializes the report message for generic assertions. (8.71.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8710-2026-09-28)
- The rule now always sorts literal cases in a stable order. (8.71.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8710-2026-09-28)
- The rule now respects this: void on class properties. (8.71.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8710-2026-09-28)
- Prevents autofix from breaking code when removing await. (8.70.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8701-2026-09-21)
- Uses unknown[] for bare any rest parameters. (8.70.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8701-2026-09-21)
- Doesn't report a mapped type whose keys are not resolved yet. (8.70.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8701-2026-09-21)
- Allows void on assignment expressions. (8.70.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8701-2026-09-21)
- Handles multiple Promise constituents. (8.70.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8701-2026-09-21)
- Omits WeakMap spread suggestions. (8.70.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8701-2026-09-21)
- Handles union-keyed index access on the left-hand side of nullish assignment. (8.70.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8701-2026-09-21)
- Accounts for parameter reassignment. (8.70.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8701-2026-09-21)
- Fixes a false positive for an empty object asserted to a type alias of Record. (8.70.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8701-2026-09-21)
- Handles type precedence in the suggestion fixer. (8.70.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8701-2026-09-21)
- Converts the fixer to a suggestion fixer. (8.70.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8701-2026-09-21)
- Avoids false positives on tuples with a rest element. (8.70.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8701-2026-09-21)
- Treats Intl.Collator.prototype.compare as spec-bound. (8.70.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8701-2026-09-21)
- Stops reporting fields that read fields declared before them. (8.70.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8700-2026-09-07)
- Reports deprecated imported values used in object shorthand properties. (8.70.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8700-2026-09-07)
- Avoids a false positive on the RHS of a nested logical expression. (8.70.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8700-2026-09-07)
- Reports void used on non-call expressions. (8.69.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8690-2026-08-31)
- Uses scope analysis instead of type checking for merged namespaces. (8.69.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8690-2026-08-31)
- Compares type parameters by constraint instead of name. (8.69.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8690-2026-08-31)
- Suggestions that would result in invalid interfaces or export defaults are ignored. (8.68.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8680-2026-08-24)
- With ignoreVoid set to false, the rule no longer misses cases in ArrowFunctionExpression. (8.68.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8680-2026-08-24)
- The rule avoids stack overflow when processing recursive types. (8.68.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8680-2026-08-24)
- Autofix no longer breaks code in arrow functions. (8.68.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8680-2026-08-24)
- The rule now provides fix suggestions for reported issues. (8.68.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8680-2026-08-24)
- The rule now reports identical signatures. (8.68.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8680-2026-08-24)
- Types in the rule's report are deduplicated. (8.68.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8680-2026-08-24)
- Preserves type annotations and does not drop decorators when applying the rule. (8.66.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8660-2026-08-03)
- Ignores shadowed built-ins. (8.66.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8660-2026-08-03)
- Checks MappedType key remapping. (8.66.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8660-2026-08-03)
- Does not report defaults used by other overloads. (8.66.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8660-2026-08-03)
- Handles shadowed Boolean calls. (8.66.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8660-2026-08-03)
- No longer flags computed assignments that use a variable key. (8.65.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8650-2026-07-20)
- Handles escaped dollar signs at the end of regular expression literals. (8.65.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8650-2026-07-20)
- Reports unbound methods accessed through a member expression on union types. (8.65.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8650-2026-07-20)
- The rule now handles constrained arrays. (8.64.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8640-2026-07-13)
- Suggests converting readonly function properties instead of emitting invalid syntax. (8.63.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8630-2026-07-06)
- No longer flags a shadowed String() call. (8.63.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8630-2026-07-06)
- Handles optional-chained calls to overloaded functions. (8.63.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8630-2026-07-06)
- The fixer preserves the boolean result for nullable true comparisons. (8.62.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8621-2026-06-29)
- The fixer parenthesizes an object literal at the left edge of an expression statement. (8.62.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8621-2026-06-29)
- The rule uses a suggestion instead of an autofix for a trailing binary operator. (8.62.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8621-2026-06-29)
- Preserves comments when applying fixes. (8.61.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8611-2026-06-15)
- Fixes a precedence bug in the rule's autofix. (8.61.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8611-2026-06-15)
- Respects ECMAScript line terminators when reporting unnecessary template expressions. (8.61.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8611-2026-06-15)
- Wraps an object literal in parentheses when removing a TSTypeAssertion in an arrow body. (8.61.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8611-2026-06-15)
- Avoids false positives for template literal expressions. (8.61.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8611-2026-06-15)
- The type of UnaryExpression.prefix is now always true. (8.61.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8610-2026-06-08)
- Rules now respect ECMAScript line terminators. (8.60.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8601-2026-06-01)
- Corrected the rule to match ESLint v10 handling. (8.60.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8601-2026-06-01)
- Fixed a stack overflow when the rule processes recursive types. (8.59.4) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8594-2026-05-18)
- Object destructuring values are now treated as declarations by the rule. (8.59.2) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8592-2026-05-04)
- The rule no longer crashes on recursive template literal types. (8.59.2) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8592-2026-05-04)
- Treats void as nullish when checking for unnecessary conditions. (8.59.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8591-2026-04-27)
- Handles instantiation expressions. (8.59.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8591-2026-04-27)
- Avoids false positives in logical assignment assertions. (8.59.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8591-2026-04-27)
- Preserves phantom type arguments in generic inference. (8.59.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8591-2026-04-27)
- Preserves index signatures in undefined unions. (8.59.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8591-2026-04-27)
- Fixes a crash when checker.getTypeArguments is not a function. (8.59.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8591-2026-04-27)
- The rule uses assignability checks in checkTypePredicates, which can change its unnecessary-condition reports. (8.58.2) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8582-2026-04-13)
- Fixes a false negative for type predicate parameters. (8.58.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8581-2026-04-08)
- The package now supports TypeScript 6. (8.58.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8580-2026-03-30)
- The rule now handles index signatures. (8.58.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8580-2026-03-30)
- The rule no longer crashes. (8.58.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8580-2026-03-30)
- The rule avoids fixing unknown RegExp flags. (8.58.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8580-2026-03-30)
- Ignores Array and ReadonlyArray types without type arguments. (8.57.2) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8572-2026-03-23)
- Flags banned generics used in extends or implements. (8.57.2) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8572-2026-03-23)
- Fixes a false positive when unwrapping a generic. (8.57.2) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8572-2026-03-23)
- Skips false-positive reports for unresolved type parameters. (8.57.2) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8572-2026-03-23)
- Removes a dangling closing parenthesis. (8.57.2) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8572-2026-03-23)
- Preserves type alias information when checking readonly parameter types. (8.57.2) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8572-2026-03-23)
- The rule no longer reports a property on an intersection type. (8.57.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8571-2026-03-16)
- Fixes a false positive for toString methods with overloads. (8.57.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8570-2026-03-09)
- Guards against negative paramIndex values. (8.57.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8570-2026-03-09)
- Handles statically analyzable computed keys. (8.57.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8570-2026-03-09)
- Fixes false positives with overloads. (8.57.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8570-2026-03-09)
- Uses parser options from context.languageOptions. (8.56.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8560-2026-02-16)
- Adds support for ESLint v10, allowing the plugin to be used with that ESLint release. (8.56.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8560-2026-02-16)
- When removing an entire import, the rule no longer leaves a trailing newline. (8.55.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8550-2026-02-09)
- The rule now reports unnecessary defaults in ternary expressions. (8.55.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8550-2026-02-09)
- The rule's handling of TypeScript this parameters now reduces the parameter index. (8.55.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8550-2026-02-09)
- The rule now checks both the base constraint and actual type for non-null assertions. (8.54.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8540-2026-01-26)
- The rule now recognizes that a private destructured class member is defined but used. (8.54.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8540-2026-01-26)
- The rule skips its fixer when an interface is a default export. (8.53.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8531-2026-01-19)
- The root defaultOptions property is now optional, so rule authors can omit it. (8.53.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8531-2026-01-19)
- Replaces the unclear “error” typed description with a more helpful description. (8.53.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8530-2026-01-12)
- Fixes a false positive for parameters corresponding to a rest parameter. (8.53.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8530-2026-01-12)
- The rule now detects @@toPrimitive and valueOf. (8.52.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8520-2026-01-05)
- The rule now handles conditional initializers. (8.52.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8520-2026-01-05)
- The rule's crash and false-positive cases are fixed. (8.51.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8510-2025-12-29)
- The rule now handles MemberExpression in the final chain position. (8.51.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8510-2025-12-29)
- Ignores methods that return this. (8.50.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8501-2025-12-22)
- Corrects handling of undefined vs. void. (8.50.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8501-2025-12-22)
- The ESLint plugin uses Intl.Segmenter instead of graphemer for text segmentation. (8.49.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8490-2025-12-08)
- Checks the value flag before resolving an alias. (8.48.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8481-2025-12-02)
- Checks base types in the allow list when applying restrict-template-expressions. (8.48.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8481-2025-12-02)
- Honors ignored base types on generic classes. (8.48.1) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8481-2025-12-02)
- The rule ignores constructors that are typed arrays. (8.48.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8480-2025-11-24)
- Binding patterns are disallowed in parameter properties during parsing. (8.48.0) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8480-2025-11-24)
- Fixes double-reporting on computed literal identifiers. (8.46.4) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8464-2025-11-10)
- The fixer now handles the override modifier. (8.46.4) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8464-2025-11-10)
- The rule now supports signed numbers in enum values. (8.46.3) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8463-2025-11-03)
- The rule now expands union types to retrieve the target property. (8.46.3) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8463-2025-11-03)
- The rule skips optional chaining when it could change the result. (8.46.2) — [release notes](https://github.com/typescript-eslint/typescript-eslint/blob/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb/packages/eslint-plugin/CHANGELOG.md#8462-2025-10-20)
