사용 가능한 형태 나열
인자 조합마다 반환 타입이 달라지는 경우를 독립된 선언으로 나눠 호출과 결과의 짝을 고정합니다.
parse(x: string): number
오버로딩은 여러 호출 형태를 타입으로 보여주되 실제 실행 함수는 하나라는 점을 분명히 이해해야 합니다.
인자 조합마다 반환 타입이 달라지는 경우를 독립된 선언으로 나눠 호출과 결과의 짝을 고정합니다.
parse(x: string): number
런타임에는 하나의 함수가 typeof나 Array.isArray로 경우를 나눕니다.
function parse(x: unknown)
반환 타입이 입력 타입과 강하게 연결되지 않으면 유니온이 더 단순할 수 있습니다.
string | number
오버로드는 다양한 사용법을 자동완성과 문서처럼 드러내는 효과가 있습니다.
overload list
오버로딩은 복잡한 함수 사용법을 호출자에게 선명하게 보여줄 때 가장 빛납니다.