더북(TheBook)

컨디셔널 타입을 자바스크립트의 삼항연산자처럼 중첩해서 만들 수도 있습니다.

type ChooseArray<A> = A extends string
  ? string[]
  : A extends boolean ? boolean[] : never;
type StringArray = ChooseArray<string>;
// type StringArray = string[]
type BooleanArray = ChooseArray<boolean>;
// type BooleanArray = boolean[]
type Never = ChooseArray<number>;
// type Never = never

또는 인덱스 접근 타입으로 컨디셔널 타입을 표현할 수도 있습니다.

type A1 = string;
type B1 = A1 extends string ? number : boolean;
type B2 = {
  't': number;
  'f': boolean;
}[A1 extends string ? 't' : 'f'];

B1B2의 타입은 같습니다. 왜 굳이 더 복잡하게 사용할까요? 참일 때와 거짓일 때의 타입이 복잡한 경우는 이렇게 나타내기도 합니다(이 경우는 3.9절에서 또 보게 될 것입니다).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.