Skip to content
← Back to rules

typescript/prefer-namespace-keyword 正确性

This rule is turned on by default.
An auto-fix is available for this rule.

它的作用

当使用 module 关键字而非 namespace 时,此规则会发出警告。 该规则不会对用于描述外部 API 的 TypeScript 模块声明(如 declare module 'foo' {})进行报告。

WARNING

此规则已弃用,将在未来的版本中移除。

在未来的 TypeScript 和 Oxlint 版本中,这将由解析器直接作为硬错误处理。

参见:https://github.com/microsoft/TypeScript/issues/54500, https://github.com/microsoft/TypeScript/issues/62211 以及 https://github.com/microsoft/TypeScript/pull/62876。

为什么这是个问题?

命名空间是组织 TypeScript 代码的一种过时方式。现在更推荐使用 ES2015 模块语法(import / export)。 对于仍在使用自定义模块 / 命名空间的项目,建议将其称为命名空间。

示例

此规则的 不正确 代码示例:

typescript
module Example {}

此规则的 正确 代码示例:

typescript
namespace Example {}

如何使用

要通过配置文件或 CLI 启用 此规则,可以使用:

json
{
  "rules": {
    "typescript/prefer-namespace-keyword": "error"
  }
}
bash
oxlint --deny typescript/prefer-namespace-keyword

参考资料