[typescript] 타입스크립트에서의 조건부 타입 변환 방식

타입스크립트는 조건부 타입을 사용하여 타입 시스템을 보다 강력하게 만들 수 있습니다. 조건부 타입은 입력된 제네릭 타입에 따라 다른 타입을 반환하는 방식으로 사용됩니다.

기본적인 조건부 타입

아래는 간단한 예제를 통해 타입스크립트에서의 조건부 타입 변환 방식을 보여줍니다.

type WrapInArray<T> = T extends any[] ? T : [T];

type WrappedString = WrapInArray<string>; // [string]
type WrappedNumberArray = WrapInArray<number[]>; // number[]

위 예제에서 WrapInArray는 입력된 타입이 배열인지 확인하여 배열이라면 해당 타입을 그대로 반환하고, 배열이 아니라면 배열로 감싸는 타입을 정의합니다.

분배 조건부 타입

분배 조건부 타입은 infer 키워드를 사용하여 입력된 조건부 타입을 더 세부적으로 분해하여 조건에 따라 타입을 변환하는 방식으로 사용됩니다. 아래가 이에 대한 예제입니다.

type UnwrapArray<T> = T extends (infer U)[] ? U : T;

type UnwrappedString = UnwrapArray<string[]>; // string
type UnwrappedNumber = UnwrapArray<number>; // number

위 예제에서 UnwrapArray는 입력된 타입이 배열인지 확인하여 배열이라면 해당 배열의 요소 타입을 반환하고, 배열이 아니라면 그대로 해당 타입을 반환합니다.

조건부 타입은 타입스크립트의 강력한 기능 중 하나이며, 코드 유지보수 및 안정성을 높이는 데에 유용하게 활용될 수 있습니다.

더 많은 내용을 확인하려면 타입스크립트 공식 문서을 참고할 수 있습니다.