overload

오버로딩은 여러 호출 형태를 하나의 구현으로 묶습니다

호출 시그니처는 여러 개를 보여 주고 구현 시그니처는 모든 경우를 처리하도록 넓게 잡아야 합니다.

호출 시그니처

사용자에게 보임

각 호출 패턴별 매개변수와 반환 타입을 구체적으로 나열합니다.

parse(text)
구현 시그니처

넓게 수용

모든 오버로드를 처리할 수 있게 union이나 unknown 계열로 구현 범위를 잡습니다.

input: string | number
분기 처리

런타임 확인

구현 내부에서는 typeof, Array.isArray 같은 가드로 케이스를 나눕니다.

typeof
유니온 비교

결과 차이

반환 타입이 입력별로 크게 달라질 때 오버로드가 호출자 경험을 개선합니다.

return mapping