unstale

npm / typescript-eslint

typescript-eslint

What changed in typescript-eslint 8, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-17.

20 breaking4 deprecations18 new APIs and options1 performance18 behavior and defaults4 tooling118 fixes and other

typescript-eslint 8183 changes

Breaking changes 20

  • Import attribute keys are now restricted to identifiers and strings.

    8.70.1release notes

  • Import attribute values are now required to be string literals.

    8.70.1release notes

  • Reports void on non-call expressions.

    8.69.0release notes

  • The rule now reports identical signatures.

    8.68.0release notes

  • typescript-estree now throws for invalid definite assignment in class properties.

    8.64.0release notes

  • Reports more cases based on assignability.

    8.59.0release notes

  • The rule now uses assignability checks in checkTypePredicates, potentially changing which conditions are reported as unnecessary.

    8.58.2release notes

  • The rule now flags banned generics used in extends or implements.

    8.57.2release notes

  • The rule now requires strictNullChecks.

    8.55.0release notes

  • Invalid modifiers in object expressions are now forbidden.

    8.55.0release notes

  • The rule now checks both the base constraint and actual type for non-null assertions.

    8.54.0release notes

  • Invalid class implements declarations are now rejected.

    8.53.0release notes

  • Invalid import equals declarations are now rejected.

    8.53.0release notes

  • Invalid extends and implements clauses in interface declarations are now rejected.

    8.53.0release notes

  • Type-only imports using both default and named specifiers are now rejected.

    8.53.0release notes

  • The rule now detects @@toPrimitive and valueOf implementations.

    8.52.0release notes

  • analyze now expects a Program.

    8.48.0release notes

  • Binding patterns in parameter properties are now disallowed.

    8.48.0release notes

  • The parser now errors when projectService and project are configured together.

    8.46.4release notes

  • Invalid modifiers in object methods are now forbidden.

    8.46.2release notes

Deprecations 4

New APIs and options 18

  • Adds a rule that detects unsafe enum assignments.

    8.71.0release notes

  • Adds a rule for detecting generated empty object types.

    8.70.0release notes

  • Adds the flagUnions option to checkConditionals.

    8.69.0release notes

  • Rule metadata now supports the ESLint meta.languages property.

    8.68.0release notes

  • Basic globs are now exported for using tseslint.

    8.67.0release notes

  • Adds an option that errors on unsupported TypeScript versions.

    8.65.0release notes

  • The parser now supports parsing import defer syntax.

    8.64.0release notes

  • Detects async usage where a synchronous dispose operation is expected.

    8.63.0release notes

  • The allow configuration now accepts TypeOrValueSpecifier.

    8.57.0release notes

  • ParserServicesWithTypeInformation gains shortcut methods for accessing parser services.

    8.54.0release notes

  • ScopeManager now supports adding globals for integrations that construct or extend scope information.

    8.54.0release notes

  • Project service now accepts Partial<ts.server.ServerHost> values.

    8.53.0release notes

  • A new ESLint rule is available for checking strict void returns.

    8.53.0release notes

  • Adds a new rule to eslint-plugin-internal for detecting multiple lines of errors.

    8.52.0release notes

  • Plugin metadata now includes a namespace.

    8.51.0release notes

  • RuleModule now exposes the rule name.

    8.51.0release notes

  • Adds an ESLint rule that detects useless default assignments.

    8.50.0release notes

  • Adds an extension rule for detecting unused private class members.

    8.47.0release notes

Performance 1

  • Cleanup is throttled when opening files, reducing cleanup activity during file opening.

    8.71.1release notes

Behavior and default changes 18

  • Its fixer is now provided as a suggestion fixer.

    8.70.1release notes

  • The rule now provides fix suggestions for violations.

    8.68.0release notes

  • The parser now handles import.defer() as an ImportExpression.

    8.66.0release notes

  • Throws when import defer syntax is invalid.

    8.65.0release notes

  • Provides specialized errors for enum declaration and member shadowing.

    8.65.0release notes

  • The rule now supports using and await using declarations.

    8.64.0release notes

  • The ArrowFunction type has been tightened.

    8.61.0release notes

  • The TSTypePredicate type has been tightened.

    8.61.0release notes

  • The YieldExpression type has been tightened.

    8.61.0release notes

  • The rule now ignores Array and ReadonlyArray types without type arguments.

    8.57.2release notes

  • Skips the createIsolatedProgram fallback when projectService is used.

    8.57.2release notes

  • Literal loop conditions in for and do loops are now allowed by the rule.

    8.57.0release notes

  • The rule can now automatically remove unused imports.

    8.53.0release notes

  • The rule is no longer marked as fixable.

    8.51.0release notes

  • Parsing failures now produce more informative errors.

    8.51.0release notes

  • Checks base types against the allow list.

    8.48.1release notes

  • All errors are now gated behind allowInvalidAST.

    8.48.0release notes

  • Redundancy checks now use assignability checking.

    8.48.0release notes

Tooling 4

  • TypeScript 6 is now supported.

    8.58.0release notes

  • Support ESLint v10, allowing projects to use typescript-eslint with the new ESLint release.

    8.56.0release notes

  • CLI outputs now include tseslint.com redirects, providing updated links for developers using command-line tooling.

    8.52.0release notes

  • eslint-plugin now uses Intl.Segmenter instead of graphemer for text segmentation.

    8.49.0release notes

Fixes and other changes 118

  • Correctly parenthesizes constraints in optional tuple elements.

    8.71.2release notes

  • Avoids false positives when the rule is used without the typescript-eslint parser.

    8.71.2release notes

  • Ignores type-only references when determining after-used variables.

    8.71.2release notes

  • Applies a safe fix when an optional chain ends with a strict null comparison.

    8.71.2release notes

  • Matches linked packages and packages whose version is missing.

    8.71.2release notes

  • The rule no longer autofixes when the declared return type is unknown.

    8.71.1release notes

  • Argument checks are skipped for calls without arguments.

    8.71.1release notes

  • Counts instantiated mapped type templates when checking for unnecessary type parameters.

    8.71.1release notesrelease notes

  • Identical types are skipped and deep type walks are bounded.

    8.71.1release notes

  • Partially exported merged declarations now report usedOnlyAsType correctly.

    8.71.1release notes

  • The rule now checks the constrained type.

    8.71.1release notes

  • TypeOrValueSpecifier now matches re-exports and global declarations.

    8.71.1release notes

  • Handles a return statement outside any function.

    8.71.0release notes

  • Generic assertion reports now use a specialized message.

    8.71.0release notes

  • Literal cases are now always sorted in stable order.

    8.71.0release notes

  • Respects this: void on class properties.

    8.71.0release notes

  • Removing await no longer produces autofixes that break code.

    8.70.1release notes

  • Bare any rest parameters now use unknown[] in the rule's handling.

    8.70.1release notes

  • Mapped types with unresolved keys are no longer reported.

    8.70.1release notes

  • Allows void on assignment expressions.

    8.70.1release notes

  • Handles multiple Promise constituents.

    8.70.1release notes

  • WeakMap spread suggestions are omitted.

    8.70.1release notes

  • Handles union-keyed index access on the left side of nullish assignment.

    8.70.1release notes

  • Accounts for parameter reassignment.

    8.70.1release notes

  • Avoids a false positive for empty objects asserted to Record type aliases.

    8.70.1release notes

  • Suggestion fixes now handle type precedence correctly.

    8.70.1release notes

  • Avoids false positives on tuples with rest elements.

    8.70.1release notes

  • Symlinked paths are resolved when matching files to projects.

    8.70.1release notes

  • Adds missing opening < tokens for type arguments.

    8.70.1release notes

  • Treats Intl.Collator.prototype.compare as bound by the specification.

    8.70.1release notes

  • Stops reporting fields that read fields declared before them.

    8.70.0release notes

  • Reports deprecated imported values used in object shorthand properties.

    8.70.0release notes

  • Removes a false positive on the right-hand side of a nested logical expression.

    8.70.0release notes

  • Clarifies the parserOptions.project error message, making configuration problems easier to understand.

    8.70.0release notes

  • Uses scope analysis instead of type checking for merged namespaces.

    8.69.0release notes

  • Compares type parameters by constraint instead of name.

    8.69.0release notes

  • Suggestions that create invalid interfaces or export defaults are now ignored.

    8.68.0release notes

  • Setting ignoreVoid to false no longer produces a false negative in arrow functions.

    8.68.0release notes

  • Recursive types no longer cause a stack overflow during analysis.

    8.68.0release notes

  • The autofix no longer breaks code in arrow functions.

    8.68.0release notes

  • Reports now deduplicate types in unified-signature diagnostics.

    8.68.0release notes

  • The rule now preserves type annotations and does not drop decorators.

    8.66.0release notes

  • The rule now ignores shadowed built-ins.

    8.66.0release notes

  • The rule now checks key remapping in mapped types.

    8.66.0release notes

  • The rule no longer reports defaults used by other overloads.

    8.66.0release notes

  • The rule now correctly handles calls to shadowed Boolean identifiers.

    8.66.0release notes

  • Stops flagging computed assignments that use a variable key.

    8.65.0release notes

  • Correctly handles escaped dollar signs at the end of regex literals.

    8.65.0release notes

  • Reports unbound methods accessed through member expressions on union types.

    8.65.0release notes

  • The rule now uses the array argument type constraint.

    8.64.0release notesrelease notes

  • Suggests converting readonly function properties without emitting invalid syntax.

    8.63.0release notes

  • No longer flags a shadowed String() call.

    8.63.0release notes

  • Handles optional-chained calls to overloaded functions correctly.

    8.63.0release notes

  • The fixer now preserves the boolean result for nullable true comparisons.

    8.62.1release notes

  • Trailing binary operator cases now receive a suggestion instead of an automatic fix.

    8.62.1release notes

  • Autofixing no longer removes comments.

    8.61.1release notes

  • Fixes a precedence bug in the autofix.

    8.61.1release notes

  • Correctly respects ECMAScript line terminators.

    8.61.1release notes

  • Object literals at the left edge of expression statements are now parenthesized by the fixer.

    8.61.1release notesrelease notes

  • Avoids false positives for template literal expressions.

    8.61.1release notes

  • The rule-schema-to-typescript-types tool now respects ECMAScript line terminators.

    8.61.0release notes

  • UnaryExpression.prefix is now always typed as true.

    8.61.0release notes

  • Correct the rule to match ESLint v10 handling.

    8.60.1release notes

  • Respect ECMAScript line terminators in ts-comment rules.

    8.60.1release notes

  • Fixed the playground TypeScript version selector so developers can select the intended TypeScript version.

    8.60.0release notes

  • Exports Compatible* types from typescript-eslint to resolve a pnpm TypeScript error.

    8.59.4release notes

  • Now throws the underlying error cause when retrieving a parsed configuration file from the TypeScript server.

    8.59.4release notes

  • Prevents a stack overflow when the rule processes recursive types.

    8.59.4release notes

  • Object destructuring values are now treated as declarations by the rule.

    8.59.2release notes

  • The rule no longer crashes when analyzing recursive template literal types.

    8.59.2release notes

  • The rule tester now declares TypeScript as a peer dependency.

    8.59.2release notes

  • Treats void as nullish when checking for unnecessary conditions.

    8.59.1release notes

  • Handles instantiation expressions correctly.

    8.59.1release notes

  • Avoids false positives in logical assignment assertions.

    8.59.1release notes

  • Fixes a crash caused by checker.getTypeArguments not being a function.

    8.59.1release notes

  • Preserves index signatures in undefined unions to avoid incorrect lint behavior.

    8.59.1release notes

  • Preserves phantom type arguments during generic inference.

    8.59.1release notes

  • Fixes a false negative when checking type predicate parameters.

    8.58.1release notes

  • The rule now handles index signatures.

    8.58.0release notes

  • Fixed a crash in the no-unnecessary-type-arguments rule.

    8.58.0release notes

  • The rule avoids fixing unknown RegExp flags.

    8.58.0release notes

  • Fixes false positives when unwrapping generic return values.

    8.57.2release notes

  • Skips false positives for unresolved type parameters.

    8.57.2release notes

  • Removes a dangling closing parenthesis from the rule's reported output.

    8.57.2release notes

  • Preserves type alias information when checking readonly parameter types.

    8.57.2release notes

  • The rule no longer reports properties on intersection types, reducing incorrect lint diagnostics.

    8.57.1release notes

  • For tagged template literals with invalid escapes, cooked is now null.

    8.57.0release notes

  • False positives for toString with overloads are fixed.

    8.57.0release notes

  • The rule is guarded against negative parameter indexes.

    8.57.0release notes

  • Statically analyzable computed keys are handled correctly.

    8.57.0release notes

  • False positives involving overloads are fixed.

    8.57.0release notes

  • Parser options are now taken from context.languageOptions, ensuring rules use the current language options.

    8.56.0release notes

  • Removing an entire import no longer leaves a trailing newline.

    8.55.0release notes

  • The rule now reports unnecessary defaults in ternary expressions.

    8.55.0release notes

  • Catch clause scope definitions now report the correct def.name value.

    8.54.0release notes

  • Utilities now handle environments where FlatESLint is missing.

    8.54.0release notes

  • Utilities now handle environments where LegacyESLint is missing.

    8.54.0release notes

  • The rule no longer incorrectly reports a private destructured class member as unused when it is used.

    8.54.0release notes

  • Scope analysis no longer misidentifies use strict directives.

    8.54.0release notes

  • The fixer now skips interfaces that are default exports, avoiding an incorrect automatic change.

    8.53.1release notes

  • RuleCreator no longer requires root defaultOptions, simplifying custom rule definitions.

    8.53.1release notes

  • The rule no longer reports a false positive for parameters corresponding to a rest parameter.

    8.53.0release notes

  • Syntax checking for using declarations is corrected.

    8.53.0release notes

  • The rule now correctly handles conditional initializers.

    8.52.0release notes

  • The rule no longer crashes or reports false positives in some cases.

    8.51.0release notes

  • The rule now fixes additional cases by using optional syntax.

    8.51.0release notes

  • The rule now handles MemberExpression in the final chain position.

    8.51.0release notes

  • The rule now ignores methods that return this.

    8.50.1release notes

  • The rule now correctly handles undefined versus void.

    8.50.1release notes

  • Checks the value flag before resolving an alias.

    8.48.1release notes

  • Ignored base types are now honored on generic classes.

    8.48.1release notes

  • The rule now ignores cases where the constructor is a typed array.

    8.48.0release notes

  • singleRun is now inferred as true for project service.

    8.48.0release notes

  • The rule no longer double-reports computed literal identifiers.

    8.46.4release notes

  • The fixer now handles functions with the override modifier correctly.

    8.46.4release notes

  • The rule now supports signed numbers when checking duplicate enum values.

    8.46.3release notes

  • The rule now expands union types to retrieve the target property.

    8.46.3release notes

  • The rule now skips optional chaining when applying it could change the result.

    8.46.2release notes