メインコンテンツにスキップ

共有設定

ESLint共有設定は、開始点となる包括的なルール設定のリストを提供するために存在します。@typescript-eslint/eslint-pluginには、推奨される開始ルールを取り込むために拡張できる組み込みの設定が含まれています。

allstrictstrict-type-checkedを除くすべての設定は「安定版」と見なされます。ルールの追加と削除は破壊的な変更として扱われ、メジャーバージョンの更新でのみ行われます。

はじめに

ESLint設定ファイルを設定するには、まずはじめに > クイックスタートを参照してください。パッケージ > typescript-eslintには、tseslintヘルパーに関する詳細なドキュメントが含まれています。

型チェックを行わないプロジェクト

プロジェクトで型付きリンティングを有効にしていない場合は、開始点としてrecommendedstylisticの設定を有効にすることをお勧めします。

eslint.config.js
export default tseslint.config(
eslint.configs.recommended,
...tseslint.configs.recommended,
...tseslint.configs.stylistic,
);

プロジェクトで作業している開発者の大多数がTypeScriptとtypescript-eslintに精通している場合は、recommendedstrictに置き換えることを検討してください。

型チェックを行うプロジェクト

プロジェクトで型付きリンティングを有効にしている場合は、開始点としてrecommended-type-checkedstylistic-type-checkedの設定を有効にすることをお勧めします。

eslint.config.js
export default tseslint.config(
eslint.configs.recommended,
...tseslint.configs.recommendedTypeChecked,
...tseslint.configs.stylisticTypeChecked,
);

プロジェクトで作業している開発者の大多数がTypeScriptとtypescript-eslintに精通している場合は、`recommended-type-checked`を`strict-type-checked`に置き換えることを検討してください。

ほとんどのプロジェクトは、以下のいずれかから拡張することをお勧めします。

  • recommended: 追加の設定なしで導入できる、コードの正確性に関する推奨ルール。
  • recommended-type-checked: recommendedに加えて、型情報を必要とする追加の推奨ルールが含まれています。
  • strict: recommendedに加えて、バグを検出できる追加の厳格なルールが含まれていますが、推奨ルールよりも意見が分かれます。
  • strict-type-checked: strictに加えて、型情報を必要とする追加の厳格なルールが含まれています。

さらに、簡潔で一貫性のあるコードを強制するstylistic設定を提供しています。ほとんどのプロジェクトは、以下のいずれかから拡張することをお勧めします。

  • stylistic: 追加の設定なしで導入できる、スタイルに関するルール。
  • stylistic-type-checked: stylisticに加えて、型情報を必要とする追加のスタイルルールが含まれています。
注記

これらの設定は推奨される開始点ですが、**そのまま使用する必要はありません**。ESLintでは、拡張された設定の上に独自のルール設定を行うことができます。ESLintのルールの設定に関するドキュメントを参照してください。

追加の設定なしで導入できる、コードの正確性に関する推奨ルール。これらのルールは、そのレポートがほとんどの場合、悪い習慣や潜在的なバグに関するものです。recommendedは、typescript-eslintルールと競合したり、TypeScriptコードベースで問題を引き起こしたりすることが知られているコアESLintルールも無効にします。

eslint.config.js
export default tseslint.config(...tseslint.configs.recommended);

この設定の正確な内容については、configs/recommended.tsを参照してください。

recommendedのすべてに加えて、型情報を必要とする追加の推奨ルールが含まれています。この設定に新しく追加されたルールは、recommendedのルールと同様に役立ちます。

eslint.config.js
export default tseslint.config(...tseslint.configs.recommendedTypeChecked);

この設定の正確な内容については、configs/recommended-type-checked.tsを参照してください。

strict

recommendedのすべてに加えて、バグも検出できる追加の厳格なルールが含まれています。strictに追加されたルールは、推奨ルールよりも意見が分かれるため、すべてのプロジェクトに適用できるわけではありません。

eslint.config.js
export default tseslint.config(...tseslint.configs.strict);

recommendedでも有効になっている一部のルールは、この設定ではより厳格な設定がデフォルトになっています。この設定の正確な内容については、configs/strict.tsを参照してください。

ヒント

TypeScriptプロジェクトがplugin:@typescript-eslint/strictから拡張するのは、開発者のかなりの割合がTypeScriptに精通している場合のみにすることをお勧めします。

警告

この設定は、セマンティックバージョニング(semver)では「安定版」とは見なされません。有効になっているルールやそのオプションは、メジャーバージョンの更新外で変更される可能性があります。

strict-type-checked

recommendedrecommended-type-checkedstrictのすべてに加えて、型情報を必要とする追加の厳格なルールが含まれています。この設定に新しく追加されたルールは、strictのルールと同様に役立ちます(そして意見が分かれます)。

eslint.config.js
export default tseslint.config(...tseslint.configs.strictTypeChecked);

recommended-type-checkedでも有効になっている一部のルールは、この設定ではより厳格な設定がデフォルトになっています。この設定の正確な内容については、configs/strict-type-checked.tsを参照してください。

ヒント

TypeScriptプロジェクトが`plugin:@typescript-eslint/strict-type-checked`から拡張するのは、開発者のかなりの割合がTypeScriptに精通している場合のみにすることをお勧めします。

警告

この設定は、セマンティックバージョニング(semver)では「安定版」とは見なされません。有効になっているルールやそのオプションは、メジャーバージョンの更新外で変更される可能性があります。

stylistic

最新のTypeScriptコードベースのベストプラクティスと見なされるルールですが、プログラムロジックには影響しません。これらのルールは、一般的に、より単純なコードパターンを強制することに関する意見です。

eslint.config.js
export default tseslint.config(...tseslint.configs.stylistic);

stylisticrecommendedまたはstrictを置き換えるものではないことに注意してください。stylisticは追加のルールを追加します。

この設定の正確な内容については、`configs/stylistic.ts`を参照してください。

`stylistic-type-checked`

`stylistic`のすべてに加えて、型情報を必要とする追加のスタイルルールが含まれています。この設定に新しく追加されたルールは、`stylistic`のルールと同様に意見が分かれます。

eslint.config.js
export default tseslint.config(...tseslint.configs.stylisticTypeChecked);

`stylistic-type-checked`は`recommended-type-checked`または`strict-type-checked`を置き換えるものではないことに注意してください。`stylistic-type-checked`は追加のルールを追加します。

この設定の正確な内容については、`configs/stylistic-type-checked.ts`を参照してください。

その他の設定

typescript-eslintには、いくつかのユーティリティ設定が含まれています。

`all`

typescript-eslintの一部として提供される各ルールを有効にします。多くのルールはすべてのコードベースに適用できるわけではなく、設定されることを意図していることに注意してください。

この設定の正確な内容については、`configs/all.ts`を参照してください。

警告

TypeScriptプロジェクトが`plugin:@typescript-eslint/all`から拡張することはお勧めしません。多くのルールが互いに競合したり、プロジェクトごとに設定されることを意図しています。

警告

この設定は、セマンティックバージョニング(semver)では「安定版」とは見なされません。有効になっているルールやそのオプションは、メジャーバージョンの更新外で変更される可能性があります。

`base`

typescript-eslintを実行するために必要なパーサーとプラグインオプションのみを設定する最小限のルールセット。これを直接使用することはお勧めしません。代わりに、前に推奨されたルールから拡張してください。

推奨設定のいずれかを使用すると、この設定は自動的に含まれます。

この設定の正確な内容については、`configs/base.ts`を参照してください。

`disable-type-checked`

プロジェクトで利用可能な型認識リントとすべての型認識ルールを無効にするユーティリティルールセットです。この設定は、基本設定で型認識リントを有効にし、オーバーライドを使用してコードベースの特定のサブセットで型認識リントを条件付きで無効にする場合に便利です。

この設定の正確な内容については、configs/disable-type-checked.tsを参照してください。

情報

他のプラグインの型認識ルールを使用している場合は、これらのルールを手動で無効にするか、それらを無効にするための既製のconfigを使用する必要があります。

eslint.config.js
export default tseslint.config(
eslint.configs.recommended,
...tseslint.configs.recommendedTypeChecked,
{
languageOptions: {
parserOptions: {
project: true,
tsconfigDirName: import.meta.dirname,
},
},
},
{
files: ['**/*.js'],
...tseslint.configs.disableTypeChecked,
},
);
警告

この設定は、セマンティックバージョニング(semver)では「安定版」とは見なされません。有効になっているルールやそのオプションは、メジャーバージョンの更新外で変更される可能性があります。

このルールセットは、eslint:recommendedを拡張した後に使用することを想定しています。TypeScriptコンパイラによって既にチェックされているコアESLintルールを無効にします。さらに、TypeScriptで利用可能なより最新の構成体を使用することを促進するルールを有効にします。

eslint.config.js
export default tseslint.config(
eslint.configs.recommended,
tseslint.configs.eslintRecommended,
);

推奨設定のいずれかを使用すると、この設定は自動的に含まれます。

この設定の正確な内容については、configs/eslint-recommended.tsを参照してください。

型チェックされたルールのみを含み、対応するコアESLintルールを無効にするrecommendedのバージョンです。この設定とrecommendedを組み合わせると、recommended-type-checkedと同等です。

.eslintrc.js
module.exports = {
extends: ['plugin:@typescript-eslint/recommended-type-checked-only'],
};

この設定の正確な内容については、configs/recommended-type-checked-only.tsを参照してください。

strict-type-checked-only

型チェックされたルールのみを含み、対応するコアESLintルールを無効にするstrictのバージョンです。この設定とstrictを組み合わせると、strict-type-checkedと同等です。

.eslintrc.js
module.exports = {
extends: ['plugin:@typescript-eslint/strict-type-checked-only'],
};

この設定の正確な内容については、configs/strict-type-checked-only.tsを参照してください。

警告

この設定は、セマンティックバージョニング(semver)では「安定版」とは見なされません。有効になっているルールやそのオプションは、メジャーバージョンの更新外で変更される可能性があります。

stylistic-type-checked-only

型チェックされたルールのみを含み、対応するコアESLintルールを無効にするstylisticのバージョンです。この設定とstylisticを組み合わせると、stylistic-type-checkedと同等です。

.eslintrc.js
module.exports = {
extends: ['plugin:@typescript-eslint/stylistic-type-checked-only'],
};

この設定の正確な内容については、configs/stylistic-type-checked-only.tsを参照してください。

設定変更の提案

特定のルールをこれらの設定に含める(または含めない)べきだと強く感じている場合は、**詳細な**根拠を説明する議論とともに issueを提出してください。

フォーマット

typescript-eslintによって提供されるプリセット設定では、フォーマットルール(コードの空白やその他のトリビアを強制するためのルール)は有効になりません。ESLintのフォーマットルールではなく、Prettierまたは同等のものを使用してコードをフォーマットすることを強くお勧めします。フォーマットについてはどうですか? > 推奨される使用方法を参照してください。