[typescript] 함수 오버로딩
함수 오버로딩(overloading)은 타입스크립트에서 하나의 함수에 여러 시그니처를 정의하는 개념입니다. 이는 매개변수나 반환값의 타입에 따라 서로 다른 동작을 정의할 수 있게 합니다.
기본 문법
function add(x: number, y: number): number;
function add(x: string, y: string): string;
function add(x: any, y: any): any {
return x + y;
}
위의 예제에서 add
함수는 number
타입 매개변수를 가진 경우와 string
타입 매개변수를 가진 경우, 각각 다른 동작을 정의할 수 있습니다.
사용 예시
console.log(add(2, 3)); // 5
console.log(add('Hello', 'TypeScript')); // HelloTypeScript
주의사항
함수 오버로딩을 사용할 때는 다음과 같은 주의사항이 있습니다.
- 가장 구체적인 시그니처부터 정의해야 합니다. 만약 특정 시그니처가 더 일반적인 경우, 보다 구체적인 시그니처보다 먼저 정의되어야 합니다.
- 구현 시그니처는 가장 마지막에 와야 합니다. 구현 시그니처는 오버로딩된 시그니처들 뒤에 위치해야 합니다.
마치며
함수 오버로딩을 사용하면 동일한 이름의 함수에 대해 다양한 시그니처를 정의하여 유연한 활용이 가능합니다. 하지만, 오버로딩된 함수의 시그니처가 혼란스러워질 수 있다면, 필요한 경우에 한해 사용하는 것이 좋습니다.