도리쓰에러쓰

[TypeScript] 유틸리티 타입 (Partial, Pick, Omit) 본문

TypeScript/TypeScript

[TypeScript] 유틸리티 타입 (Partial, Pick, Omit)

강도리 2022. 12. 19. 23:10

유틸리티 타입

- 제네릭 타입이라고도 불린다.

- 정의한 인터페이스를 변환한다.


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'를 제외한 속성을 사용할 수 있다.

Comments