TypeScript·

43 - Exclude

  • #Type Challenges
  • #TypeScript

질문

T에서 U에 할당할 수 있는 타입을 제외하는 내장 제네릭 Exclude<T, U>를 이를 사용하지 않고 구현하세요.

예시:

1
type Result = MyExclude<'a' | 'b' | 'c', 'a'> // 'b' | 'c'
2
3

선행 지식

  1. 유니온의 분배 법칙

    1
    T extends U ? A : B
    2
    ->
    3
    (T1 extends U ? A : B)
    4
    | (T2 extends U ? A : B)
    5
    | (T3 extends U ? A : B)

    T가 유니온이면 각 타입에 대해 조건이 분배되어 계산된다.

풀이