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

종현·2024년 1월 9일

[TypeScript]

목록 보기
15/19

유틸리티 타입이란?

  • 이미 정의되어 있는 타입 구조를 변경하여 재사용하고 싶을 때 사용하는 타입

  • 미리 정의해 놓은 내장 타입이기 때문에 타입스크립트를 설치한 후 설정 파일의 lib속성만 변경 해주면 된다.

{
  "compilerOptions" : {
    "lib": ["ESNext"]
  }
}

Pick 유틸리티 타입

  • 특정 타입의 속성을 뽑아서 새로운 타입을 만들어 낼 때 사용한다.

예시

interface Profile {
  id: string;
  name: string;
  address: string;
}

type ProfileId = Pick<Profile, 'name' | 'address'>; // type ProfileId = { name: string; address: string; }

문법

  • 첫 번째로 넘긴 타입과 두 번째로 넘긴 타입으로 결과 타입이 정의되고 화살 괄호는 제네릭 문법의 구조이다.
Pick<대상 타입, '대상 타입의 속성 이름'>
Pick<대상 타입, '대상 타입의 속성 이름 1' | '대상 타입의 속성 이름 2'>

Omit 유틸리티 타입

  • 특정 타입에서 속성 몇 개를 제외한 나머지 속성으로 새로운 타입을 생성할 때 사용하는 유틸리티 타입이다.

  • Pick과는 달리 특정 타입에서 속성 몇 개만 제외하고 나머지 타입으로 새로운 타입을 생성한다.

예시

interface Profile {
  id: string;
  name: string;
  address: string;
}

type ProfileId = Omit<Profile, 'address'>; // type ProfileId = { id: string; name: string; }

문법

  • Omit을 선언한 후 첫 번째 제네릭 타입에 대상 타입을 넘기고, 두 번째 제네릭 타입으로 제외할 속성 이름을 문자열 타입 또는 무자열 유니언 타입으로 선언한다.
Omit<대상 타입, '대상 타입의 속성 이름'>
Omit<대상 타입, '대상 타입의 속성 이름 1' | '대상 타입의 속성 이름 2'>

출처: 쉽게 시작하는 타입스크립트

profile
지속 가능한 성장 습관을 만들어 나가고 싶어요!

0개의 댓글