[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

주의사항

함수 오버로딩을 사용할 때는 다음과 같은 주의사항이 있습니다.

마치며

함수 오버로딩을 사용하면 동일한 이름의 함수에 대해 다양한 시그니처를 정의하여 유연한 활용이 가능합니다. 하지만, 오버로딩된 함수의 시그니처가 혼란스러워질 수 있다면, 필요한 경우에 한해 사용하는 것이 좋습니다.


참고:
타입스크립트 핸드북 - 함수 오버로딩