문제
T
에서 U
에 할당할 수 있는 타입을 제외하는 내장 제네릭 Exclude<T, U>
를 이를 사용하지 않고 구현하세요.
예시
type Result = MyExclude<'a' | 'b' | 'c', 'a'> // 'b' | 'c'
🔥 도전하기
TS Playground - An online editor for exploring TypeScript and JavaScript
The Playground lets you write TypeScript or JavaScript online in a safe and sharable way.
www.typescriptlang.org
풀이
해당 문제를 풀기 위해서는 분산 조건부 타입에 대해서 알아야 한다. T 가 유니온일 때 T extends U 와 같은 구조를 사용하면, TypeScript는 유니온 T 를 순회하면서 각 원소들을 주어진 조건에 적용한다.
예를들어 T 에 대한 타입 인수 A | B | C 를사용하여 T extends U ? X : Y 를 인스턴스화 하면 (A extends U ? X : Y) | (B extends U ? X : Y) | (C extends U ? X : Y) 가 됩니다.
type MyExclude<T, U> = T extends U ? never : T;
'TypeScript > Type Challenges' 카테고리의 다른 글
[18] Length of Tuple (0) | 2022.11.19 |
---|---|
[14] easy first (0) | 2022.11.16 |
[11] Tuple to Object (0) | 2022.11.09 |
[7] Readonly (0) | 2022.11.02 |
[4] Pick (0) | 2022.10.29 |