유틸리티 타입이란?
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 |