Skip to content
← Back to rules

typescript/consistent-generic-constructors スタイル

🛠️ An auto-fix is available for this rule.

何をするか

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

このルールは、ジェネリックコンストラクタの使用方法について一貫性を保つことを強制します。

なぜ問題なのか

ジェネリックコンストラクタの使い方が一貫性がないと、コードの読解性や保守性が低下します。

このルールに対して誤りなコードの例:

ts
const a: Foo<string> = new Foo();
const a = new Foo<string>(); // 型注釈を優先

このルールに対して正しいコードの例:

ts
const a = new Foo<string>();
const a: Foo<string> = new Foo(); // 型注釈を優先

設定

このルールは、次のプロパティを持つ設定オブジェクトを受け入れます。

option

型: "constructor" | "type-annotation"

デフォルト: "constructor"

ジェネリック型が指定される場所を指定します。

可能な値:

  • "constructor" (デフォルト): 型注釈上にのみ現れる型引数は許可されません。
  • "type-annotation": コンストラクタ上にのみ現れる型引数は許可されません。

"constructor"

型注釈上にのみ現れる型引数は許可されません。

"type-annotation"

コンストラクタ上にのみ現れる型引数は許可されません。

使用方法

設定ファイルまたは CLI でこのルールを有効化するには、次のようにします:

json
{
  "rules": {
    "typescript/consistent-generic-constructors": "error"
  }
}
bash
oxlint --deny typescript/consistent-generic-constructors

参照