跳至主要内容

相邻重载签名

要求函数重载签名连续。

🎨

"plugin:@typescript-eslint/stylistic" 中扩展 ESLint 配置 将启用此规则。

函数重载签名表示函数可以被调用的多种方式,可能具有不同的返回类型。描述函数的接口或类型别名通常将所有重载签名并排放置。如果签名放置在类型中的其他位置,则将来阅读代码的开发人员更容易错过它们。

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/adjacent-overload-signatures": "error"
}
};

在游乐场中尝试此规则 ↗

示例

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;
在游乐场中打开

选项

此规则不可配置。

何时不使用它

有时将重载签名放置在类型的其他有意义的部分旁边可能很有用。例如,如果函数的每个重载对应于不同的属性,您可能希望将每个重载放在其对应的属性旁边。您可能考虑使用 ESLint 禁用注释 用于这些特定情况,而不是完全禁用此规则。

资源