TypeScript-섹션10. 유틸리티 타입- Record, Pick, Omit(3)

손주완·2025년 7월 15일

Typescript Section10

목록 보기
3/4

Pick<T, K>

Pick은 특정 객체 타입에서 일부 프로퍼티만 골라내는 유틸리티 타입임.

예제

interface Post {
  title: string;
  tags: string[];
  content: string;
  thumbnailURL?: string;
}

const legacyPost: Pick<Post, "title" | "content"> = {
  title: "",
  content: "",
};

직접 구현

type Pick<T, K extends keyof T> = {
  [key in K]: T[key];
};

Omit<T, K>

Omit은 특정 객체 타입에서 일부 프로퍼티만 제외하는 유틸리티 타입임.

예제

const noTitlePost: Omit<Post, "title"> = {
  content: "",
  tags: [],
  thumbnailURL: "",
};

직접 구현

type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;

Record<K, V>

Record는 키-값 쌍을 가지는 객체 타입을 생성할 때 사용함.

예제

type Thumbnail = Record<
  "large" | "medium" | "small",
  { url: string }
>;

직접 구현

type Record<K extends keyof any, V> = {
  [key in K]: V;
};

0개의 댓글