Packages

@typescript-eslint/eslint-plugin

8.72.1 · 26 Oct 2026MIT172.4M / weekRepositoryHomepagenpmAtom feed

Your version

2.0.0

major13 Aug 2019Where it was published

2.34.0 is the newest release of 2.x.

In short

6 breaking1 removed16 new8 fixed12 changed

  • breaking

    Node 6 is no longer supported.

  • breaking

    eslint-plugin: Removed hardcoded checks which prevented some rules from running on non-TypeScript files (i.e. files that are not *.ts/*.tsx).

  • breaking

    eslint-plugin: Removed deprecated rule prefer-interface. This rule was replaced by consistent-type-definitions.

  • breaking

    eslint-plugin: Removed deprecated rule no-triple-slash-reference. This rule was replaced by triple-slash-reference

  • breaking

    eslint-plugin: Merged both no-angle-bracket-type-assertion and no-object-literal-type-assertion into one rule - consistent-type-assertions.

  • breaking

    eslint-plugin: explicit-function-return-type no longer treats export default () => {} as an expression for the purposes of the allowExpressions option.

  • removed

    eslint-plugin: remove deprecated rules

Release note

Breaking changes

  • breaking

    Node 6 is no longer supported.

  • breaking

    parser / typescript-estree:

    • When project is specified within parserOptions, we will now hard fail when parsing files that are not included within the provided tsconfig(s).

    • We discovered that this was a common performance pitfall, and could increase lint times by huge amounts.

    • To handle this, there are a few possible solutions:

      1. Improve the includes field within your tsconfig(s) so that all the files you want to lint are included.

      2. Create a new tsconfig.eslint.json which you pass into parserOptions.project, which includes all of the files you want to lint, e.g.:

        {
          // extend your base config so you don't have to redefine your compilerOptions
          "extends": "./tsconfig.json",
          "include": [
            "src/**/*.ts",
            "test/**/*.ts",
            "typings/**/*.ts"
            // etc
          ],
          // IF (and only if) you have a mixed JS/TS codebase - you should also turn on JS support
          "compilerOptions": {
            "allowJs": true,
            "checkJs": true
          }
        }

        If you are using non standard file extensions (i.e. .vue files), you should add the following config to your .eslintrc file:

        {
          "parserOptions": {
            "extraFileExtensions": [".vue"]
          }
        }
  • breaking

    eslint-plugin: Removed hardcoded checks which prevented some rules from running on non-TypeScript files (i.e. files that are not *.ts/*.tsx).

    • Some users with mixed TS/JS codebases may now see some TypeScript-specific rules being reported against JS files.

    • Please use ESLint's "overrides" config to select which files to apply rules to.

  • breaking

    eslint-plugin: Removed deprecated rule prefer-interface. This rule was replaced by consistent-type-definitions.

  • breaking

    eslint-plugin: Removed deprecated rule no-triple-slash-reference. This rule was replaced by triple-slash-reference

  • breaking

    eslint-plugin: Merged both no-angle-bracket-type-assertion and no-object-literal-type-assertion into one rule - consistent-type-assertions.

  • breaking

    eslint-plugin: explicit-function-return-type no longer treats export default () => {} as an expression for the purposes of the allowExpressions option.

  • breaking

    eslint-plugin: Changed a number of the default rule configs:

    • explicit-function-return-type - allowTypedFunctionExpressions and allowHigherOrderFunctions are now both true by default.

    • no-inferrable-types - ignoreParameters and ignoreProperties are now both false by default.

    • no-this-alias - allowDestructuring is now true by default.

  • breaking

    eslint-plugin: Reworked the recommended configs:

    • plugin:@typescript-eslint/recommended

      • This is our slim, recommended set of rules. This config does not require type information, so it can be easily dropped into an existing config.

    • plugin:@typescript-eslint/recommended-requiring-type-checking

      • This is a slightly expanded set of rules, intended to be used in conjunction with plugin:@typescript-eslint/recommended. These rules specifically require type information. We separated these rules into a separate config to ease adoption and to make the base recommended "fast-by-default".

    • plugin:@typescript-eslint/eslint-recommended

      • This config is a compatibility config that disables rules from eslint:recommended which are already handled by TypeScript.

    • plugin:@typescript-eslint/all

      • This config simply turns on every single rule available in the plugin.

    • The intention is that you can use all the configs together, as they build upon one-another:

      {
        "extends": [
          "eslint:recommended",
          "plugin:@typescript-eslint/eslint-recommended",
          "plugin:@typescript-eslint/recommended",
          "plugin:@typescript-eslint/recommended-requiring-type-checking"
        ]
      }

Bug Fixes

  • eslint-plugin: [efrt] flag default export w/ allowExpressions

  • eslint-plugin: [no-explicit-any] Fix ignoreRestArgs for interfaces

  • eslint-plugin: [no-useless-constructor] handle bodyless constructor

  • eslint-plugin: [prefer-readonly] TypeError when having computed member expression

  • eslint-plugin: [typedef] support for..in, for..of

  • eslint-plugin: [typedef] support default value for parameter

  • eslint-plugin: add Literal to RuleListener types

  • typescript-estree: fix is token typed as Keyword

  • typescript-estree: jsx comment parsing

  • utils: add ES2019 as valid ecmaVersion

Features

  • Explicitly support eslint v6

  • eslint-plugin: [interface-name-prefix, class-name-casing] Add allowUnderscorePrefix option to support private declarations

  • eslint-plugin: [no-var-requires] report on foo(require('')) (#725) (b2ca20d), closes #665

  • eslint-plugin: [promise-function-async] make allowAny default true

  • eslint-plugin: [strict-boolean-expressions] add ignoreRhs option

  • eslint-plugin: add support for object props in CallExpressions

  • eslint-plugin: added new rule typedef

  • eslint-plugin: added new rule use-default-type-parameter

  • eslint-plugin: move opinionated rules between configs

  • removed

    eslint-plugin: remove deprecated rules

  • eslint-plugin: [array-type] rework options (#654) (1389393), closes #654 #635

  • eslint-plugin: add rule consistent-type-assertions (#731) (92e98de), closes #731

  • eslint-plugin: change recommended config (#729) (428567d), closes #729

  • eslint-plugin: recommended-requiring-type-checking config (#846) (d3470c9), closes #846

  • typescript-estree: throw error on file not in project when project set (#760) (3777b77), closes #760