メインコンテンツへスキップ

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の無効化コメントを使用することを検討してください。

リソース