Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 파이썬 replace
- 내일배움캠프 프로젝트
- 내배캠 프로젝트
- JavaScript
- 리액트 프로젝트
- 자바스크립트
- 리액트
- 내일배움캠프 최종 프로젝트
- tanstack query
- 리액트 공식문서
- useState
- 파이썬 enumerate
- typeScript
- 내일배움캠프
- Next 팀 프로젝트
- REACT
- 타입스크립트
- useEffect
- 파이썬 반복문
- React Hooks
- 코딩테스트
- 파이썬 slice
- 리액트 훅
- 타입스크립트 props
- 한글 공부 사이트
- 파이썬 for
- 파이썬 for in
- 타입스크립트 리액트
- 프로그래머스
- 파이썬 딕셔너리
Archives
- Today
- Total
sohyeon kim
[TS] Pick, Omit, Exclude : Generic 을 사용한 유틸리티 타입, 객체 프로퍼티 고르기, 생략하기 & Union 제거 본문
TypeScript
[TS] Pick, Omit, Exclude : Generic 을 사용한 유틸리티 타입, 객체 프로퍼티 고르기, 생략하기 & Union 제거
aotoyae 2024. 3. 5. 01:42728x90
💡 합치는 거 말고 골라오거나, 생략해보자!
Pick
interface Product {
id: string;
name: string;
price: number;
membersOnly?: boolean;
}
type ProductInfo = Pick<Product, 'name' | 'price'>;
// ProductInfo 타입 값은 아래와 같다.
type ProductInfo = {
name: string;
price: number;
}
name, price 프로퍼티만 골라서 타입을 만들었다.
Omit
interface Product {
id: string;
name: string;
price: number;
membersOnly?: boolean;
}
type ProductInfo = Omit<Product, 'id' | 'membersOnly'>;
// ProductInfo 타입 값은 아래와 같다.
type ProductInfo = {
name: string;
price: number;
}
id, membersOnly 를 제외하고 타입을 만들었다.
💡 Union 을 제거해보자!
Coupon 의 타입은 네 개의 타입 중 하나일 수 있다.
PromotionCoupon 또는 EmployeeCoupon 또는 WelcomCoupon 또는 RewardCoupon
type Coupon =
| PromotionCoupon
| EmployeeCoupon
| WelcomCoupon
| RewardCoupon
;
type InternalCoupon = EmployeeCoupon;
type PublicCoupon = Exclude<Coupon, InternalCoupon>;
// type PublicCoupon = PromotionCoupon | WelcomCoupon | RewardCoupon
EmployeeCoupon 에 해당하는 것만 제거하고 싶다면
Exclude 를 사용!
728x90
반응형
'TypeScript' 카테고리의 다른 글
[TS] 타입스크립트 활용 : 간단한 카페 주문 받기 프로그램 (2) | 2024.03.06 |
---|---|
[TS] 타입스크립트 모듈 사용, 옵션 설정 & tsconfig/bases (0) | 2024.03.05 |
[TS] generic 제네릭 타입 <string> ~ <number> ~ <???> ~ (0) | 2024.03.05 |
[TS] keyof & typeof 연산자 (0) | 2024.03.04 |
[TS] intersection & 타입 합치기 (0) | 2024.03.04 |