배열에서 조건부 타입과 추론에 대해 의미있는 코드가 있어 정리해 봅니다. 배열을 구성하는 항목의 타입을 얻기 위해 다음과 같은 코드가 가능합니다.
type Flatten<T> = T extends any[] ? T[number] : T; type Str = Flatten; type Num = Flatten ;
T[number]가 배열을 구성하는 항목의 타입을 나타낸다는 점이 포인트입니다. 위의 코드는 조건부 타입에서 추론을 사용하면 다음처럼 동일하게 작성될 수 있습니다.
type Flatten<Type> = Type extends Array<infer Item> ? Item : Type;
