Overload

반환 타입이 입력 형태를 따라가면 오버로드를 검토한다

단순히 여러 타입을 받는 문제가 아니라, 호출 형태별 결과 타입이 달라지는지가 핵심입니다.

유니온으로 충분한 경우

입력은 여러 타입이지만 결과 타입이 하나이거나 호출자가 좁힐 필요가 적습니다.

format(value: string | number): string

오버로드가 맞는 경우

문자열 호출 parse(input: string): Date
숫자 호출 parse(input: number): string
구현 시그니처 parse(input: string | number): Date | string