반응형
내장 조건부 타입들
조건부 타입을 이용하면 정말 강력한 연산자 몇 가지를 타입 수준에서 표현할 수 있습니다.
TypeScript가 전역에서 바로 사용할 수 있는 여러 조건부 타입을 제공하는 이유도 바로 이 때문입니다.
- Exclude<T, U>
- Without 타입처럼 T에 속하지만 U에는 없는 타입을 구합니다.
type A = number | string
type B = string
type C = Exclude<A, B> // type C = number
- Extract<T, U>
- T의 타입 중 U에 할당할 수 있는 타입을 구합니다.
type A = number | string
type B = string
type C = Extract<A, B> // type C = string
- NonNullable<T>
- T에서 null과 undefined를 제외한 버전을 구합니다.
type A = {a?: number | null}
type B = NonNullable<A['a']> // type B = number
- ReturnType<F>
- 함수의 반환 타입을 구합니다.(제네릭과 오버로드된 함수에선 동작하지 않습니다.)
type F = (a: number) => string
type R = ReturnType<F> // type R = string
- InstanceType<C>
- 클래스 생성자의 인스턴스 타입을 구합니다.
type A = {new(): B}
type B = {b: number}
type I = InstanceType<A> // type I = {b: number;}
반응형
'👶 TypeScript' 카테고리의 다른 글
탈출구 - Nonnull 어서션 (0) | 2023.01.22 |
---|---|
탈출구 - 타입 어서션 (0) | 2023.01.21 |
조건부 타입 - infer 키워드 (0) | 2023.01.21 |
조건부 타입 - 분배적 조건부 (0) | 2023.01.21 |
조건부 타입 (0) | 2023.01.21 |