본문 바로가기
카테고리 없음

[Typescript] Pick, Omit, Partial, Required

by 곰인간 2025. 6. 13.
type DocumentType = { 
   id: number 
   updated_at: string 
   file_url: string 
   title: string 
   document_text: { 
     content: string 
     filename: string 
   } 
 }
 
 // Pick<T, K>
type Pick<T, K extends keyof T> = {
  [P in K]: T[P]
};
// ↑ T에서 K에 해당하는 키들만 가져오는

// Omit<T, K>
type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;
// ↑ T에서 K에 해당하는 키들을 제외한 나머지를 Pick으로 뽑아내는 방식

// Partial<T>
type Partial<T> = {
  [P in keyof T]?: T[P]
};
// ↑ T의 모든 프로퍼티를 optional로

// Required<T>
type Required<T> = {
  [P in keyof T]-?: T[P]
};
 // ↑ T의 모든 프로퍼티에서 optional을 제거하고 required로

댓글