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

consistent-generic-constructors

コンストラクタ呼び出しの型注釈またはコンストラクタ名にジェネリック型引数を指定することを強制します。

🎨

拡張 "plugin:@typescript-eslint/"stylistic" ESLint設定 に追加すると、このルールが有効になります。

🔧

このルールによって報告されるいくつかの問題は、 --fix ESLintコマンドラインオプション.

によって自動的に修正できます。

// Left-hand side
const map: Map<string, number> = new Map();

// Right-hand side
const map = new Map<string, number>();

ジェネリッククラスを構築する場合、型引数を左側(型注釈として)または右側(コンストラクタ呼び出しの一部として)のいずれかに指定できます。

このルールは、型引数が宣言の片側に一貫して表示されるようにします。片側に統一することで、コードの可読性が向上します。

宣言の両側、またはどちらの側にも型パラメータがない場合は、このルールはレポートされません。 また、型注釈とコンストラクタの名前が一致しない場合も報告されません。
module.exports = {
"rules": {
"@typescript-eslint/consistent-generic-constructors": "error"
}
};

.eslintrc.cjs

プレイグラウンドでこのルールを試す ↗

オプション

type Options = ['constructor' | 'type-annotation'];

const defaultOptions: Options = ['constructor'];
  • このルールは次のオプションを受け入れます。
  • constructor (デフォルト): 型注釈にのみ表示される型引数は許可されません。

type-annotation: コンストラクタにのみ表示される型引数は許可されません。

const map: Map<string, number> = new Map();
const set: Set<string> = new Set();
✅ 適切

プレイグラウンドで開く

const map = new Map<string, number>();
const set = new Set<string>();
✅ 適切

type-annotation

使用しない場合

ある種のジェネリックコンストラクタスタイルを他のスタイルに強制したくない場合は、このルールを無効にすることができます。

ただし、一貫性のないスタイルはプロジェクトの可読性を損なう可能性があることに注意してください。 プロジェクトに最適なこのルールの単一のオプションを選択することをお勧めします。