[typescript] 다중 타입을 활용하여 리턴 타입을 제한하는 방법은 어떤게 있나요?
먼저, 유니언 타입을 사용하여 여러 타입 중 하나의 타입으로만 리턴되도록 제한할 수 있습니다. 예를 들어, 아래와 같이 유니언 타입을 사용하여 number
또는 string
타입만을 리턴할 수 있도록 할 수 있습니다.
function getNumberOrString(isNumber: boolean): number | string {
if (isNumber) {
return 10;
} else {
return "hello";
}
}
또 다른 방법으로는 제네릭 타입을 사용하여 리턴 타입을 동적으로 설정할 수 있습니다. 예를 들어, 아래와 같이 제네릭 타입을 사용하여 인자로 전달된 타입과 동일한 타입을 리턴하도록 할 수 있습니다.
function identity<T>(arg: T): T {
return arg;
}
let result1 = identity(10); // result1의 타입은 number
let result2 = identity("hello"); // result2의 타입은 string
유니언 타입과 제네릭 타입은 각각 다양한 상황에서 리턴 타입을 제한하는 데 유용하게 활용될 수 있습니다.