prefer-namespace-keyword
カスタムTypeScriptモジュールの宣言に、`module`キーワードではなく`namespace`キーワードを使用することを要求します。
🎨
拡張 "plugin:@typescript-eslint/"スタイル"
を ESLint設定で 有効にすると、このルールが適用されます。
🔧
このルールによって報告される問題の中には、 `--fix` ESLintコマンドラインオプションによって自動的に修正できるものがあります。.
TypeScriptでは、かつて「カスタムモジュール」( `module Example {}` )と呼ばれるコード編成方法が許容されており、後に「名前空間」( `namespace Example` )と改名されました。
名前空間は、TypeScriptコードを整理する時代遅れの方法です。現在はES2015モジュール構文(`import`/`export`)が推奨されています。
カスタムモジュール/名前空間を依然として使用しているプロジェクトでは、それらを名前空間として参照することが推奨されます。このルールは、`namespace`の代わりに`module`キーワードが使用されている場合に報告します。
このルールは、外部APIを記述するTypeScriptモジュール宣言(`declare module 'foo' {}`)の使用については報告しません。
.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/prefer-namespace-keyword": "error"
}
};
プレイグラウンドでこのルールを試してみてください ↗
例
- ❌ 正しくない
- ✅ 正しい
module Example {}
プレイグラウンドで開くnamespace Example {}
declare module 'foo' {}
プレイグラウンドで開くオプション
このルールは設定できません。
使用しない場合
TypeScriptの古い`module`/`namespace`キーワードを使用していない場合は、このルールは必要ありません。