eqlog.dev
← 목록으로

매일 쓰는 TypeScript 유틸리티 타입 정리

·2 min read
개발

유틸리티 타입이란?

TypeScript가 기본 제공하는 제네릭 헬퍼 타입들입니다. 기존 타입을 변환하거나 조합할 때 반복적인 타입 정의를 줄여줍니다.

자주 쓰는 것들

Partial<T>

모든 프로퍼티를 선택적으로 만듭니다. 업데이트 페이로드 타입에 자주 씁니다.

interface User {
  id: number;
  name: string;
  email: string;
}

function updateUser(id: number, patch: Partial<User>) {
  // patch.name만 보내도 됨
}

Pick<T, K>

특정 프로퍼티만 골라냅니다.

type UserPreview = Pick<User, "id" | "name">;
// { id: number; name: string }

Omit<T, K>

특정 프로퍼티를 제외합니다.

type CreateUserDto = Omit<User, "id">;
// { name: string; email: string }

Record<K, V>

키-값 구조를 깔끔하게 표현합니다.

type RolePermissions = Record<"admin" | "editor" | "viewer", string[]>;

ReturnType<T>

함수의 반환 타입을 추론합니다.

function getUser() {
  return { id: 1, name: "홍길동" };
}

type User = ReturnType<typeof getUser>;
// { id: number; name: string }

조합해서 쓰기

유틸리티 타입은 조합할 때 진가가 나타납니다.

type UpdateDto = Partial<Omit<User, "id">>;
// { name?: string; email?: string }

한 번 익혀두면 매일 쓰게 됩니다.