[TypeScript] Function Overloads

Function Overloads

동일한 이름에 매개 변수와 매개 변수 타입 또는 리턴 타입이 다른 여러 버전의 함수를 만드는 것을 말합니다. TypeScript에서는 오버로드 signatures을 작성하여 **“다양한 방식으로 호출할 수 있는 함수”**를 지정할 수 있습니다.

사용 예제

매개변수의 데이터 타입이 다른 경우

매개변수의 데이터 타입이 다른 경우 예외 처리를 합니다.

1
2
3
4
5
6
7
8
9
10
11
12
type Add = {
(a: number, b: number): number;
(a: number, b: string): number;
};

const add: Add = (a, b) => {
if (typeof b === 'string') return a;
return a + b;
};

add(1, '2');
add(1, 2);

매개변수의 수가 다른 경우

매개변수의 수가 다른 경우 예외 처리를 합니다.

1
2
3
4
5
6
7
8
9
10
11
12
type Add = {
(a: number, b: number): number;
(a: number, b: number, c: number): number;
};

const add2: Add = (a, b, c?: number) => {
if (c) return a + b + c;
return a + b;
};

add(1, 2);
add(1, 2, 3);

참고

Share