유틸리티 타입

실무에서 자주 사용되는 타입을 미리 만들어 둔 것

맵드 타입 기반

Partial

특정 객체 타입의 모든 프러퍼티를 선택적 프로퍼티로 바꿔주는 타입

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


// 임시 저장된 게시글
const draft: Partial<Post> = {
  title : '초안 제목',
  content : '초안'
}

// Partial 타입 직접 구현
type Partial<T> = {
  [key in keyof T] ?: T[key]
};

Required

특정 객체 타입의 모든 프로퍼티를 필수 프로퍼티로 바꿔주는 타입

-?는 필드를 선택적(optional) 속성이 아닌 필수 속성으로 만든다. 즉, 원래 T 타입에 선택적 속성이 있다면, 이 타입에서는 선택성이 제거되어 필수 속성으로 변경된다.

Readonly

특정 객체 타입에서 모든 프로퍼티를 읽기 전용 프로퍼티로 만들어 주는 타입

Pick<T, K>

객체 타입으로부터 특정 프로퍼티만 골라내는 타입

Omit<T, K>

객체 타입으로 부터 특정 프로퍼티를 제거하는 타입

Record<K, V>

객체 타입을 새롭게 정의할 때 인덱스 시그니처처럼 유연하지만, 조금 더 제한적인 객체타입을 정의

조건부 타입 기반

Exclude<T, U>

T에서 U를 제거하는 타입

Extract<T, U>

T에서 U를 추출하는 타입

ReturnType

함수의 반환값 다입을 추출하는 타입

Last updated