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;

如何使用

To enable this rule using the config file or in the CLI, you can use:

json
{
  "rules": {
    "typescript/adjacent-overload-signatures": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "typescript/adjacent-overload-signatures": "error",
  },
});
bash
oxlint --deny typescript/adjacent-overload-signatures

版本

此规则于 v0.0.7 中添加。

参考资料