跳到主要內容

no-misused-new

強制執行有效定義 newconstructor

延伸 "plugin:@typescript-eslint/recommended" ESLint 設定 中啟用此規則。

JavaScript 類別可能會定義一個在建立一個類別實例時執行的 constructor 方法。TypeScript 允許描述靜態類別物件的介面定義一個 new() 方法(雖然在實際程式碼中很少使用)。對於 JavaScript 類別和/或 TypeScript 介面缺乏了解的開發人員有時會混淆何時使用 constructornew

當類別定義名為 new 的方法或介面定義名為 constructor 的方法時,此規則會報告此混淆。

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-misused-new": "error"
}
};

在遊樂場中嘗試此規則 ↗

範例

declare class C {
new(): C;
}

interface I {
new (): I;
constructor(): void;
}
在遊樂場中開啟

選項

此規則無法設定。

何時不使用

若你故意想使用帶有 new 方法的類別,而且你確信在你的程式碼中工作的人不會將其誤認為建構函式,你可能不想要此規則。你可以考慮針對特定狀況,使用 ESLint disable 註解,而不是完全停用此規則。

資源