일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Reducer
- 원티드
- Redux
- 알고리즘
- react
- 파이어베이스
- array
- 리액트
- v9
- firebase
- axios
- 브라우저
- es6
- til
- JS
- 타입스크립트
- react localStorage
- 프로그래머스
- Component
- 컴포넌트
- 프리온보딩
- TypeScript
- 비트 연산자
- localstorage
- 프론트엔드
- Frontend
- 자바스크립트
- state
- JavaScript
- CORS
Archives
- Today
- Total
도리쓰에러쓰
[TypeScript] 유틸리티 타입 (Partial, Pick, Omit) 본문
유틸리티 타입
- 제네릭 타입이라고도 불린다.
- 정의한 인터페이스를 변환한다.
1. 파셜 타입(Partial Type)
: 특정 타입의 부분 집합을 만족하는 타입을 정의
interface IPersonal {
name: string;
birth: string;
phone: string;
}
type TUserInfor = Partial<IPersonal>
위 예시만 보면 어떤 용도인지 아직 파악이 안되지만
아래 예시처럼 객체에 있는 모든 프로퍼티에 옵셔널 프로퍼티를 적용한 것과 같다.
interface IPersonal {
name?: string;
birth?: string;
phone?: string;
}
2. 픽 타입 (Pick Type)
: 특정 타입에서 몇 개의 속성을 선택하여 타입을 정의
interface IBook {
author: string;
isbn: string;
price: number;
publisher: string;
title: string;
}
type TBookItem = Pick<IBook, 'isbn' | 'price' | 'title'>;
const book: TBookItem = {
isbn: '1234';
price: 45000;
title: '자바스크립트 Deep Dive';
}
Pick은 첫번째 인자로 받은 타입 중 두번째 인자로 주어진 속성만을 포함한 타입을 리턴한다.
위 예시는 IBook에서 일부 속성인 'isbn', 'price', 'title'만 가져와 사용할 수 있다.
3. 오밋 타입 (Omit Type)
: 특정 속성만 제거한 타입을 정의 (Pick Type과 반대)
interface IBook {
author: string;
isbn: string;
price: number;
publisher: string;
title: string;
}
type TBookItem = Omit<IBook, 'author' | 'publisher'>;
const book: TBookItem = {
isbn: '1234';
price: 45000;
title: '자바스크립트 Deep Dive';
}
Omit은 첫번째 인자로 받은 타입 중 두번째 인자로 주어진 속성을 제외한 것만 리턴한다.
위 예시는 IBook에서 'author'과 'publisher'를 제외한 속성을 사용할 수 있다.
'TypeScript > TypeScript' 카테고리의 다른 글
[TypeScript] 기본 타입 - (2) :: 함수, 익명 함수, 객체 타입 (0) | 2022.12.18 |
---|---|
[TypeScript] 기본 타입 - (1) :: 원시 타입, any 타입, nolmplicitAny, 변수에 대한 타입 표기) (0) | 2022.11.21 |
[TypeScript] Redux-Toolkit에서 store와 dispatch type 지정 방법 (0) | 2022.09.05 |
Comments