偏好命名空間關鍵字
要求使用
namespace
關鍵字而不是module
關鍵字宣告自訂 TypeScript 模組。
🎨
擴充 "plugin:@typescript-eslint/風格"
在 ESLint 設定檔 中啟用這項規則。
🔧
此規則報告的某些問題可由 --fix
ESLint 命令列選項自動修正.
在過去,TypeScript 允許一種稱為「自訂模組」的程式碼組織形式(module Example {}
),後來改名為「命名空間」(namespace Example
)。
命名空間是一種過時的 TypeScript 程式碼組織方式。現在建議採用 ES2015 模組語法(import
/export
)。
對於仍然使用自訂模組/命名空間的專案,建議將其稱為命名空間。此規則會在使用 module
關鍵字而不是 namespace
時報告錯誤。
此規則不會針對使用 TypeScript 模組宣告來描述外部 API(
declare module 'foo' {}
)進行報告。
.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/prefer-namespace-keyword": "error"
}
};
在遊樂場測試這項規則 ↗
範例
- ❌ 錯誤
- ✅ 正確
module Example {}
在 Playground 中開啟namespace Example {}
declare module 'foo' {}
在 Playground 中開啟選項
這個規則不可被設定。
什麼時候不使用
如果你沒有使用 TypeScript 的舊有 module
/namespace
關鍵字,你不會需要這個規則。