Skip to content
← Back to rules

typescript/no-misused-new 正确性

This rule is turned on by default.

它做了什么

强制对 newconstructor 的正确定义。此规则防止类定义名为 new 的方法,以及接口定义名为 constructor 的方法。

为什么这是不好的?

在 JavaScript 中,类可以定义一个在创建类实例时运行的 constructor 方法。

TypeScript 允许描述静态类对象的接口定义一个 new() 方法(尽管在实际代码中很少使用)。对 JavaScript 类和/或 TypeScript 接口不熟悉的开发者可能会混淆何时应使用 constructornew

示例

此规则的 错误 代码示例:

typescript
declare class C {
  new(): C;
}
typescript
interface I {
  new (): I;
  constructor(): void;
}

此规则的 正确 代码示例:

typescript
declare class C {
  constructor();
}
typescript
interface I {
  new (): C;
}

如何使用

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

json
{
  "rules": {
    "typescript/no-misused-new": "error"
  }
}
bash
oxlint --deny typescript/no-misused-new

参考资料