Skip to content
← Back to rules

typescript/unified-signatures スタイル

何をするか

重複する関数のオーバーロード署名(1つの署名に統合できるもの)を禁止します。

なぜ悪いのか

型が1つだけ異なる、またはオプショナル/レストパラメータが異なるだけで構成される重複したオーバーロード署名は、1つの統一された署名よりもメンテナンス性や読みやすさが劣ります。

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

ts
function f(a: number): void;
function f(a: string): void;

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

ts
function f(a: number | string): void;

設定

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

ignoreDifferentlyNamedParameters

type: boolean

default: false

署名比較時にパラメータ名の違いを無視するかどうか。false の場合、同じ位置にあるパラメータの名前が異なっていても、その型が同じであっても、署名は統合できないと見なされます。

ignoreOverloadsWithDifferentJSDoc

type: boolean

default: false

署名比較時に JSDoc の違いを無視するかどうか。false の場合、署名自体が同一であっても、最も近い先頭のブロックコメントが異なる場合は、署名は統合できないと見なされます。

使用方法

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

json
{
  "rules": {
    "typescript/unified-signatures": "error"
  }
}
bash
oxlint --deny typescript/unified-signatures

参照