이 문서는 Google Cloud Translation API를 사용해 자동 번역되었습니다.
어떤 문서는 원문을 읽는게 나을 수도 있습니다.
TypeScript의 함수 오버로딩: 다중 서명으로 함수를 생성하는 방법
함수 오버로딩은 개발자가 여러 시그니처를 사용하여 함수를 만들 수 있도록 하는 TypeScript의 강력한 기능입니다. 이 기능을 사용하면 함수가 호출되는 컨텍스트에 따라 다른 매개 변수 유형을 수락하고 다른 유형을 반환할 수 있습니다.
이 게시물에서는 TypeScript의 함수 오버로딩을 살펴보고 다중 서명을 사용하여 함수를 만드는 방법을 배웁니다.
함수 오버로딩은 이름은 같지만 매개변수 유형과 반환 유형이 다른 여러 함수를 정의하는 기능을 말합니다. 즉, 함수 오버로딩을 통해 개발자는 여러 시그니처로 함수를 정의할 수 있습니다.
함수가 오버로드되면 TypeScript는 함수 서명을 사용하여 런타임에 사용할 구현을 결정합니다. 이 기능은 호출되는 컨텍스트에 따라 다른 유형의 매개변수를 허용하거나 다른 유형의 값을 반환할 수 있는 함수를 만들 때 특히 유용합니다.
TypeScript에서 함수 오버로딩을 생성하려면 동일한 함수에 대해 여러 함수 시그니처를 정의해야 합니다. 각 서명에는 고유한 매개변수 세트와 리턴 유형이 있어야 합니다.
예를 들면 다음과 같습니다.
function add(a: number, b: number): number;
function add(a: string, b: string): string;
function add(a: any, b: any): any {
return a + b;
}
이 예에서는 add
함수에 대해 세 가지 함수 시그니처를 정의했습니다. 첫 번째 서명은 두 개의 숫자
매개변수를 허용하고 숫자
를 반환합니다. 두 번째 서명은 두 개의 문자열
매개변수를 허용하고 문자열
을 반환합니다. 세 번째 서명은 모든 유형의 매개변수를 허용하고 모든 유형을 반환하는 범용 서명입니다.
add
함수를 호출하면 TypeScript는 함수 서명을 사용하여 런타임에 사용할 구현을 결정합니다. 예를 들어:
const result1 = add(1, 2); // returns 3
const result2 = add('hello', 'world'); // returns 'helloworld'
const result3 = add(true, false); // returns truefalse
이 예에서 add
에 대한 첫 번째 호출은 두 개의 number
매개변수를 허용하고 number
를 반환하는 첫 번째 서명을 사용합니다. add
에 대한 두 번째 호출은 두 개의 string
매개변수를 허용하고 string
을 반환하는 두 번째 서명을 사용합니다. 'add'에 대한 세 번째 호출은 모든 유형의 매개변수를 허용하고 모든 유형을 반환하는 catch-all 서명을 사용합니다.
TypeScript에서 함수 오버로딩을 정의할 때 범용 서명이 항상 목록의 마지막 서명이어야 한다는 점을 기억하는 것이 중요합니다. 이렇게 하면 TypeScript가 범용 서명으로 돌아가기 전에 보다 구체적인 서명을 사용할 수 있습니다.
함수 오버로딩은 개발자가 여러 시그니처를 사용하여 함수를 만들 수 있도록 하는 TypeScript의 강력한 기능입니다. 이 기능을 사용하면 함수가 호출되는 컨텍스트에 따라 다른 매개 변수 유형을 수락하고 다른 유형을 반환할 수 있습니다.
이 게시물에서는 TypeScript에서 함수 오버로딩을 생성하는 방법을 배웠고 다중 서명을 정의하기 위한 몇 가지 모범 사례를 살펴보았습니다. 함수 오버로딩을 사용하면 다양한 유형의 입력 및 출력을 처리할 수 있는 보다 유연하고 강력한 함수를 만들 수 있습니다.