Skip to content
← Back to rules

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;

如何使用

要通过配置文件或 CLI 启用 此规则,可以使用:

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

参考资料