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

    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절에서 또 보게 될 것입니다).

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