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