[typescript] 함수의 리턴 타입이 제네릭 타입인 경우

타입스크립트에서 함수를 작성할 때, 함수의 리턴 타입이 제네릭 타입에 의해 결정되는 경우가 있습니다. 이때 함수의 리턴 타입을 명시적으로 지정하는 방법에 대해 살펴보겠습니다.

제네릭 함수의 정의

제네릭 함수는 입력되는 인자나 리턴되는 값의 타입을 유연하게 처리할 수 있는 함수입니다. 이를 통해 함수를 보다 범용적으로 활용할 수 있습니다. 아래는 제네릭 함수의 간단한 예시입니다.

function identity<T>(arg: T): T {
    return arg;
}

identity 함수는 제네릭 타입 T를 받아서 동일한 타입을 리턴하는 간단한 함수입니다.

제네릭 함수의 리턴 타입 명시하기

위의 identity 함수에서리턴 타입은 입력된 인자의 타입과 동일합니다. 하지만 타입스크립트는 입력된 제네릭 타입에 따라 리턴 타입을 유추하지 못하기 때문에 명시적으로 리턴 타입을 지정해주어야 합니다.

아래는 제네릭 함수의 리턴 타입을 명시적으로 지정하는 방법입니다.

function identity<T>(arg: T): T {
    return arg;
}

function testIdentityType(): number {
    let result: number = identity<number>(10);
    return result;
}

위 예제에서 identity 함수에 제네릭 타입 <number>를 명시하여 리턴 타입을 number로 지정하였습니다. 이제 testIdentityType 함수에서는 identity 함수의 리턴 타입을 number로 받아올 수 있습니다.

결론

타입스크립트에서 제네릭 함수를 작성할 때, 제네릭 타입에 따라 리턴 타입을 명시적으로 지정해주어야 합니다. 이를 통해 코드의 가독성을 높일 수 있고, 컴파일러가 타입을 정확하게 추론할 수 있도록 도와줍니다.

참고 자료

타입스크립트 공식 문서 - 제네릭