typescript/no-misused-new 正确性
它做了什么
强制对 new 和 constructor 的正确定义。此规则防止类定义名为 new 的方法,以及接口定义名为 constructor 的方法。
为什么这是不好的?
在 JavaScript 中,类可以定义一个在创建类实例时运行的 constructor 方法。
TypeScript 允许描述静态类对象的接口定义一个 new() 方法(尽管在实际代码中很少使用)。对 JavaScript 类和/或 TypeScript 接口不熟悉的开发者可能会混淆何时应使用 constructor 或 new。
示例
此规则的 错误 代码示例:
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