TypeScript : Utility 타입

TypeScript

TypeScript Utility Type?

유틸리티 타입은 공통 타입 변환을 용이하게 하기 위해 제공하는 타입 변화 방식이다. 이런 유틸리티들은 코드 전역에서 사용 가능하다.

Typescript Utility Type 예제

interface IProfile {
  name: string;
  age: number;
  breed: string;
  hobby?: string;
}

// 1. Pick Type
/*
type aaa = {
  name: string;
  age: number;
}
*/
type aaa = Pick<IProfile, 'name' | 'age'>;

// 2. Omit Type
/*
type bbb = {
  name: string;
  age: number;
  hobby?: string | undefined;
}
*/
type bbb = Omit<IProfile, 'breed'>;

// 3. Partial Type -> 타입 조건을 optional하게 만듦
/*
type ccc = {
  name?: string | undefined;
  age?: number | undefined;
  breed?: string | undefined;
  hobby?: string | undefined;
}
*/
type ccc = Partial<IProfile>;

// 4. Required Type
/*
type ddd = {
  name: string;
  age: number;
  breed: string;
  hobby: string;
}
*/
type ddd = Required<IProfile>;

// 5. Record Type
type eee = 'Evie' | 'EV' | '이비'; // Union type
let myCat: eee; 

/*
type fff = {
  Evie: IProfile;
  EV: IProfile;
  이비: IProfile;
}
*/
type fff = Record<eee, IProfile>; // Record type

// type vs interface : 선언 병합 차이
interface IProfile {
  numChuruAte: number;
} // IProfile에 numChuruAte 조건이 들어가게 된다.

더 많은 Utility Types

타입스크립트에서 제공하는 유틸리티 타입으로는 아래의 리스트가 있다.*


참고
Utility Types