typescript

타입 수정이 이렇게 쉬웠어? 유틸리티 타입 모음집

나빈스 코딩 2025. 8. 15. 18:39

유틸리티 타입이란?

TypeScript에는 자주 쓰이는 타입 변환을 빠르게 할 수 있도록 미리 만들어진 타입 도우미들이 있다.
이걸 유틸리티 타입(Utility Types)이라고 부르고, 타입을 재활용·수정할 때 코드량을 줄여준다.

// tsconfig.ts
{
  "compilerOptions": {
    "lib": ["ESNext"]
  }
}

 

이렇게 설정하면 최신 빌트인 유틸리티 타입을 쓸 수 있다.

주요 유틸리티 타입

1) Pick

객체 타입에서 원하는 프로퍼티만 뽑아 새 타입 만들기.

type Porsche = Pick<Car, 'id' | 'name'>;

2) Omit

객체 타입에서 원하지 않는 프로퍼티만 빼고 새 타입 만들기.

type Student = Omit<User, 'z_id'>;

 

2) Partial

객체 타입의 모든 프로퍼티를 선택적(optional)으로 변경.
REST API의 부분 수정(PATCH) 요청에 자주 쓰임.

type OptionalTodo = Partial<Todo>;

 

4) Exclude

유니언 타입에서 특정 타입을 제외.

type Languages = 'C' | 'Korean' | 'TypeScript' | 'English';
type ComputerLanguage = Exclude<Languages, 'Korean' | 'English'>;

 

5) Record

키와 값 타입을 지정해 새로운 객체 타입 만들기.

type HeroProfile = {
  skill: string;
  age: number;
};

type HeroNames = 'thor' | 'hulk' | 'capt';

type Heroes = Record<HeroNames, HeroProfile>;
// 결과:
// {
//   thor: { skill: string; age: number },
//   hulk: { skill: string; age: number },
//   capt: { skill: string; age: number }
// }


type PhoneBook = Record<string, string>;
// 결과:
// {
//   [key: string]: string
// }
// 인덱스 시그니처처럼 사용 가능.

 

'typescript' 카테고리의 다른 글

구조적 타이핑  (0) 2025.08.15
#타입 추론 #타입 단언 #타입 가드  (1) 2025.08.14
제네릭  (1) 2025.08.14
for-of 문  (0) 2025.08.14
enum  (1) 2025.08.14