Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 화살표 함수
- type
- variable object
- 정적스코프
- moment.js
- 호이스팅
- 함수 표현식
- react router
- happy hacking
- Execution Context
- scope chain
- 객체
- JavaScript
- 리액트 라우터
- Arrow function
- function
- lexical scope
- function 표현식
- 실행컨텍스트
- 함수
- This
- hoisting
- lexical environment
- webstorm
- react-router
- activation object
- function 문
- BIND
- vs code
- 자바스크립트
Archives
- Today
- Total
Pandaman Blog
[Typescript] Utility Types - 2 본문
6. Exclude
Exclude<UnionType, ExcludedMembers>
은 UnionType
중에서 ExcludedMembers
를 제외한 타입을 반환한다.
링크
즉 아래와 같다.
type Person = {
name: string;
age: number;
}
type PersonExcludeName = Exclude<keyof Person, 'name'>;
type PersonExcludeAge = Exclude<keyof Person, 'age'>;
한번 확인해보자.
type Exclude<U, E> = U extends E ? never : U;
U extends E ? never : U
표현은 타입스크립트에서 Conditional Type 이라고 한다. U
가 E
를 extends 하고 있다면 never
를 반환(생략)하고 아닐 겨우 타입 U
를 반환한다.
7. Extract
type Extract<T, U> = T extends U ? T : never;
타입 매개변수 U를 T에서 추출하는 타입이다.
예를 들어
type MixedArgs = string | number | () => string | () => number
type FunctionArgs = Extract<MixedArgs, Function>
첫번째 타입매개변수는 함수, string 또는 number 타입으로 구성된 유니온타입이다. 두번째 매개변수 Function
타입이다.
type FunctionArgs = MixedArgs extends Function ? MixedArgs : never;
즉, 타입 Function
를 extends
하는 () => string | () => number
만을 반환한다.
8. NonNullable
type NonNullable<T> = T extends null | undefined ? never : T;
NonNullable
타입은 타입매개변수 T
중 null
또는 undefined
는 제외한 나머지 타입을 반환하는 타입이다.
type PhoneNumberTypes = number | number[] | null | undefined;
type NonNullableEmailAddress = NonNullable<PhoneNumberTypes>;
// number | number[];
결과 타입이 반환되는 과정에 대한 자세한 설명은 이전글 Conditional Types에서 확인할 수 있습니다.
9. ReturnType
'Front end > Typescript' 카테고리의 다른 글
[Typescript] Conditional Types (0) | 2022.03.13 |
---|---|
[Typescript] Mapped Types (0) | 2022.02.24 |
[Typescript] Utility Types - 1 (0) | 2022.02.21 |
[Typescript] 함수 (0) | 2021.12.19 |
[Typescript] Type Guard (0) | 2021.12.18 |
Comments