--- tags: [推荐] --- 要求重载签名必须相邻。 不相邻的重载签名可能导致代码难以阅读和维护。 **无效示例:** (`bar` 在 `foo` 重载之间被声明) ```typescript type FooType = { foo(s: string): void; foo(n: number): void; bar(): void; foo(sn: string | number): void; }; ``` ```typescript interface FooInterface { foo(s: string): void; foo(n: number): void; bar(): void; foo(sn: string | number): void; } ``` ```typescript class FooClass { foo(s: string): void; foo(n: number): void; bar(): void {} foo(sn: string | number): void {} } ``` ```typescript export function foo(s: string): void; export function foo(n: number): void; export function bar(): void {} export function foo(sn: string | number): void {} ``` **有效示例:** (`bar` 在 `foo` 之后被声明) ```typescript type FooType = { foo(s: string): void; foo(n: number): void; foo(sn: string | number): void; bar(): void; }; ``` ```typescript interface FooInterface { foo(s: string): void; foo(n: number): void; foo(sn: string | number): void; bar(): void; } ``` ```typescript class FooClass { foo(s: string): void; foo(n: number): void; foo(sn: string | number): void {} bar(): void {} } ``` ```typescript export function foo(s: string): void; export function foo(n: number): void; export function foo(sn: string | number): void {} export function bar(): void {} ```