Packages

@typescript-eslint/parser

8.72.1 · 26 Oct 2026MIT180.1M / weekRepositoryHomepagenpmAtom feed

Your version

5.0.0

major11 Oct 2021Where it was published

5.62.0 is the newest release of 5.x.

In short

17 breaking2 removed13 new5 fixed3 changed

  • breaking

    Support for ESLint v8 (see individual packages for relevant breaking changes).

  • breaking

    Drop support for Node v10 - required node version is now ^12.22.0 || ^14.17.0 || >=16.0.0.

  • breaking

    Drop Support for ESLint v5

  • breaking

    Changes to the recommended rule set - see #3746

  • breaking

    Remove object from the default ban list

  • breaking

    Align schema with ESLint v8

  • breaking

    Now checks abstract members

  • breaking

    Add support for getters and setters

Release note

Breaking Release Notes

All Packages

  • breaking

    Support for ESLint v8 (see individual packages for relevant breaking changes).

  • breaking

    Drop support for Node v10 - required node version is now ^12.22.0 || ^14.17.0 || >=16.0.0.

    • Node v10 was EOL'd in April 2021, and ESLint v8 dropped support for it too.

  • breaking

    Drop Support for ESLint v5

    • ESLint v5 is now 3 years old - why are you still using it? Upgrade to at least ESLint v6.

ESLint-Plugin

  • breaking

    Changes to the recommended rule set - see #3746

  • breaking

    Remove object from the default ban list

    • This has been a point of contention for a while - I originally added it because TS currently makes it impossible to narrow the type nicely. However there ultimately isn't a good alternative to this type for many usecases. As such we're removing the default ban. If you want to continue banning it, you can configure the rule to do so.

  • breaking

    Align schema with ESLint v8

    • Should be pretty transparent unless you were using an invalid config.

  • breaking

    Now checks abstract members

  • breaking

    Add support for getters and setters

    • This will likely cause your codebase's sort orders to change if you're using the default config.

  • breaking

    Rule has been deleted

    • You should instead use @typescript-eslint/no-unused-vars instead! It has had full and awesome support for TypeScript since v4.9.0 - and it doesn't require type information!

Experimental-Utils

  • breaking

    Remove SourceCode#getComments API from ESLint types.

    • This API was deprecated in ESLint v4, and its usage will error in ESLint v8.

  • breaking

    Support ESLint v8:

    • CLIEngine is now conditionally undefined. It was deprecated in v7 and removed in v8. If you're still using it, you should upgrade to the ESLint API.

    • Remove meta.docs.category. ESLint has removed this from their core rules as it wasn't ever very useful and was always poorly done. We have followed suit and removed it from our types and our rules.

TypeScript-ESTree / AST-Spec

  • breaking

    Change .source of ExportNamedDeclaration, ExportAllDeclaration and ImportDeclaration to StringLiteral and add parse-time errors.

    • This ensures we're aligned with ESTree and producing the correct AST.

  • breaking

    Remove TSParenthesizedType node.

    • This node was added when this project was first created because the TS-AST includes this node. However it ultimately conveys no actual AST meaning (just like parentheses in non-type code). Babel removed this node earlier this year.

    • We expect rules will continue to "just work". In a lot of cases rules will work better as they no longer need manual checks to "look past" the useless node.

  • breaking

    Remove legacy option useJSXTextNode.

    • This option was added for compatibility between different ASTs a very long time ago - but all ASTs have converged on using JSXText - so you should be using that too.

  • breaking

    Align class features AST with ESTree. This aligns with ESLint v8.

    • ClassProperty is now called PropertyDefinition

    • TSAbstractClassProperty is now called TSAbstractPropertyDefinition

  • breaking

    TSAbstractPropertyDefinition.value is now always null.

    • It never made sense that this was allowed, and TS4.4 has now made this invalid.

  • breaking

    Add full support for PrivateIdentifier (#private class members)

    • Previously we did not officially support them and emitted an "unstable" AST.

    • This will allow the community to build lint rules specifically targeting #private members.

  • breaking

    Rename LineAndColumnData to Position (aligns naming with the ESTree spec docs)

Scope-Manager

  • breaking

    Class properties with values now create a 'class-field-initializer' type scope around their value.

    • This aligns with eslint-scope v6.


Raw Changelog

Bug Fixes

  • eslint-plugin: [explicit-member-accessibility] report TSAbstractPropertyDefinition and TSAbstractMethodDefinition properly

  • eslint-plugin: update new rules from master

  • Update new rules from master

  • eslint-plugin: crash in no-dupe-class-members (v5)

  • experimental-utils: fix isSetter's return type

  • typescript-estree: change source of ExportNamedDeclaration to Literal from Expression

Features

  • ast-spec: bring Node objects in line with ESTree

  • eslint-plugin: remove object from ban-types' default types

  • removed

    eslint-plugin: removed value from abstract property nodes (#3765) (5823524), closes #3748

  • eslint-plugin: update recommended configs

  • Align class property representation with ESTree (#3806) (22fa5c0), closes #3430 #3077

  • eslint-plugin: [comma-dangle] align schema with ESLint v8

  • eslint-plugin: [member-ordering] add support for getters and setters

  • eslint-plugin: remove no-unused-vars-experimental

  • eslint-plugin: [ban-types] remove object from default options ([ae3fa900d5b4e1f557a52ca58d35a7d098d9efaf

  • Remove meta.docs.category from rules

  • Remove TSParenthesizedType (#3340) (c8ee432), closes #3136

  • Support PrivateIdentifier (#3808) (0eefe5e), closes #3430 #2933

  • experimental-utils: extract isNodeOfTypes out of ast-utils' predicates

  • removed

    typescript-estree: remove legacy useJSXTextNode option

  • Support ESLint v8

  • experimental-utils: remove getComments from ESLint SourceCode types