유틸리티 타입
실무에서 자주 사용되는 타입을 미리 만들어 둔 것
맵드 타입 기반
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