跳至內容

typescript/adjacent-overload-signatures 樣式

作用

要求函數的重載簽名必須是連續的。

為什麼這不好?

函數重載簽名代表函數可以被調用的多種方式,可能具有不同的返回類型。通常,描述函數的介面或類型別名會將所有重載簽名彼此相鄰放置。如果簽名放置在類型中的其他位置,未來的開發人員在閱讀程式碼時更容易錯過。

範例

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;

參考

以 MIT 許可發布。