1. ホーム
  2. typescript

[解決済み] ESLint - TypeScriptの "no-unused-vars "を設定する。

2023-03-16 12:35:21

質問

私はすべてのTypeScriptプロジェクトで、以下の設定でESLintを使用しています。

  "extends": ["airbnb", "prettier", 'plugin:vue/recommended'],
  "plugins": ["prettier"],
  "parserOptions": {
  "parser": "@typescript-eslint/parser",
  "ecmaVersion": 2018,
  "sourceType": "module"
  },

  • には、たくさんのカスタムルールがあります。TypeScript対応のため、以下の依存関係もインストールしました。

      "@typescript-eslint/eslint-plugin": "^1.7.0",
      "@typescript-eslint/parser": "^1.7.0",
    
    

しかし、ESLintの最も便利なルールの1つ。 https://eslint.org/docs/rules/no-unused-vars は、TypeScriptプロジェクトに対して非常に貧弱に設定されているようです。例えば、enumをエクスポートすると、そのルールはenumが宣言されているファイルでは使用されていないと警告してきます。

export enum Foo {
   Bar,
}

同様に、型として使用するインターフェースやクラスをインポートした場合、 'no-unused-vars' は実際のインポートの行で再び文句を言うでしょう。

Foo.ts において

export interface Foo {
   bar: string;
}

bar.tsの中で

import { Foo } from './Foo'
const bar: Foo = { bar: 'Hello' };

これらの 2 つのケースを考慮するために no-unused-vars 規則を設定する方法はありますか? これらのケース以外では、私のルールセット全体の中で最も有用なルールの 1 つであるため、このルールを無効にするのは好きではありません。

私はすでに、エラーの代わりに警告を与えるだけのルールに格下げしました。しかし、私のすべての文書が警告で満たされることは、まだesLintを使用する目的を打ち壊すようなものです。

提案されたように、私のすべてのドキュメントを //eslint-disable-line で埋めてください。 ここで も悪い解決策のように思えます。

どのように解決するのですか?

に少し埋もれています。 ドキュメント にあるように、'extends' プロパティにいくつかのものを追加すると、ESLint が推奨する no-unused-vars のようなルールと、実際に Typescript で動作させることの両方が可能になります。こんな感じで。

"extends": [
        "eslint:recommended",
        "plugin:@typescript-eslint/eslint-recommended",
        "plugin:@typescript-eslint/recommended"
    ],

typescript-eslint/recommended は eslint:recommended が Typescript の構造を効果的に扱えるようにするためのものだと思われます。しかし、それが他の拡張機能にどのような影響を与えるかはわかりません。