Exclude - easy - [Type Challenge]

강성훈·2023년 1월 25일
0

type-challenges

목록 보기
6/20

by Zheeeng @zheeeng

T에서 U에 할당할 수 있는 타입을 제외하는 내장 제네릭 Exclude<T, U>

결과 값

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

union 타입에서 특정 한 것 들을 제외하고자 하는 것이 목적이다.

이 문제를 해결하기 위해선 typescript의 Distributive Conditional Types 문법을 알아야한다.

Distributive Conditional Types

솔루션

새로 만들 MyExclude 제네릭은 두개의 타입 변수를 받아야한다.

type MyExclude<T, U>

여기서 두 번 째 U가 아닌 것 들만을 추출한다.

type MyExclude<T, U> = T extends U ? never : T;

T extends U를 통해 존재 여부를 확인하고 U에 존재하지 않을 때만 값을 반환 시킵니다.

profile
고등학생 주니어 개발자

0개의 댓글