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;

사용 방법

이 규칙을 구성 파일이나 명령줄 인터페이스에서 활성화하려면 다음을 사용하세요:

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

참고 자료