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 | 29 | 30 |
Tags
- 파이썬 enumerate
- REACT
- JavaScript
- 내일배움캠프 프로젝트
- useState
- 타입스크립트
- 리액트
- 코딩테스트
- 자바스크립트
- 파이썬 replace
- 내일배움캠프
- 리액트 훅
- 파이썬 for in
- 파이썬 딕셔너리
- 한글 공부 사이트
- React Hooks
- 프로그래머스
- 파이썬 반복문
- useEffect
- 리액트 프로젝트
- 타입스크립트 리액트
- 리액트 공식 문서
- 파이썬 for
- 내배캠 프로젝트
- Next 팀 프로젝트
- 파이썬 slice
- typeScript
- 리액트 공식문서
- 내일배움캠프 최종 프로젝트
- tanstack query
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 |