typescript/隣接するオーバーロードシグネチャ スタイル
何をするのか
関数のオーバーロードシグネチャが連続して配置されることを要求する。
なぜ問題なのか
関数のオーバーロードシグネチャは、関数が呼び出される可能性のある複数の方法(場合によっては異なる戻り値型を伴う)を表す。関数を記述するインターフェースや型エイリアスにおいて、すべてのオーバーロードシグネチャを隣接させて配置することが一般的である。もしシグネチャが型の他の場所に分散されていると、将来コードを読む開発者が見落としやすくなる。
例
このルールに違反する誤ったコードの例:
typescript
declare namespace Foo {
export function foo(s: string): void;
export function foo(n: number): void;
export function bar(): void;
export function foo(sn: string | number): void;
}
type Foo = {
foo(s: string): void;
foo(n: number): void;
bar(): void;
foo(sn: string | number): void;
};
interface Foo {
foo(s: string): void;
foo(n: number): void;
bar(): void;
foo(sn: string | number): void;
}
class Foo {
foo(s: string): void;
foo(n: number): void;
bar(): void {}
foo(sn: string | number): void {}
}
export function foo(s: string): void;
export function foo(n: number): void;
export function bar(): void;
export function foo(sn: string | number): void;使用方法
設定ファイルまたは CLI でこのルールを有効化するには、以下のいずれかを使用できます:
json
{
"rules": {
"typescript/隣接するオーバーロードシグネチャ": "error"
}
}bash
oxlint --deny typescript/隣接するオーバーロードシグネチャ