跳至主要内容

prefer-namespace-keyword

要求使用 namespace 关键字而不是 module 关键字来声明自定义 TypeScript 模块。

🎨

"plugin:@typescript-eslint/stylistic" 中扩展 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 {}
在游乐场中打开

选项

此规则不可配置。

何时不使用它

如果您没有使用 TypeScript 的旧 module/namespace 关键字,那么您将不需要此规则。

进一步阅读

资源