타입 T의 모든 속성을 선택 사항으로 변경
interface User {
id: number;
name: string;
email: string;
gender?: 'M' | 'F';
post: {
id: number;
title: string;
}
}
// Partial<T> : 타입 T의 모든 속성을 옵셔녈로 변경
type PartialUser = Partial<User>;
타입 T의 모든 선택 사항 속성을 필수 속성으로 변경
interface User {
id: number;
name: string;
email: string;
gender?: 'M' | 'F';
post: {
id: number;
title: string;
}
}
// 모든 속성이 필수사항이 됨
type RequiredUser = Required<User>;
타입 T의 모든 속성을 읽기 전용으로 변경
interface User {
id: number;
name: string;
email: string;
gender?: 'M' | 'F';
post: {
id: number;
title: string;
}
}
// 모든 속성이 읽기 전용이 됨
type ReadonlyUser = Readonly<User>;
타입 T에서 특정 속성 K들만 골라서 새로운 타입 작성
interface User {
id: number;
name: string;
email: string;
gender?: 'M' | 'F';
post: {
id: number;
title: string;
}
}
// Pick<T, K> : 타입 T에서 특정 속성 K들만 골라서 새로운 타입
type Post = Pick<User, 'id' | 'name'>;
타입 T에서 특정 속성 K만 제외하고 나머지로 새로운 타입 작성
interface User {
id: number;
name: string;
email: string;
gender?: 'M' | 'F';
post: {
id: number;
title: string;
}
}
type OnlyUser = Omit<User, 'post'>;
유니온 타입 T에서 U와 겹치는 타입을 제거하여 새로운 타입 작성
type UnionType = string | number | boolean;
type ExtractType = Extract<string | number | boolean, string>;
유니온 타입 T에서 U와 겹치는 타입만 추출하여 새로운 타입 작성
type UnionType = string | number | boolean;
type ExtractType = Extract<string | number | boolean, string>;
함수 T의 반환 타입(Return Type)을 추출하여 새로운 타입 작성
function test() { return 'test'}
type TestReturnType = ReturnType<typeof test>;