本文へスキップ

prefer-namespace-keyword

カスタムTypeScriptモジュールの宣言に、`module`キーワードではなく`namespace`キーワードを使用することを要求します。

🎨

拡張 "plugin:@typescript-eslint/"スタイル" 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"
}
};

プレイグラウンドでこのルールを試してみてください ↗

オプション

このルールは設定できません。

使用しない場合

TypeScriptの古い`module`/`namespace`キーワードを使用していない場合は、このルールは必要ありません。

参考資料

リソース