STUDY/JavaScript
[TypeScript] Partial ,Pick , Omit 차이
bottlesun
2023. 2. 2. 17:04
Partial 이란?
유틸리티 타입으로, 특정 타입의 부분 집합을 정의 할 수 있다.
Partial 타입 예제 코드
type Partial<T> = {
[P in keyof T]?: T[P];
}
type Person = {
name: string;
age: number;
address: string;
}
type PartialPerson = Partial<Person>;
// PartialPerson은
// {
// name?: string;
// age?: number;
// address?: string;
// }
// 과 같이 정의 된다.
Pick 이란?
특정 타입에서 특정 값만 뽑아 새로운 타입으로 정의 할 수 있다.
Pick 타입 예제 코드
type Pick<T, K extends keyof T> = {
[P in K]: T[P];
}
type Person = {
name: string;
age: number;
address: string;
}
type PickPerson = Pick<Person, 'name' | 'age'>;
// PickPerson은
// {
// name: string;
// age: number;
// }
// 과 같이 정의 된다.
Omit 이란?
특정 값만 제거한 타입을 정의 해준다. (pick과는 반대)
Omit 타입 예제 코드
type Omit<T, K extends keyof T> = {
[P in Exclude<keyof T, K>]: T[P];
}
type Person = {
name: string;
age: number;
address: string;
}
type OmitPerson = Omit<Person, 'age'>;
// OmitPerson은
// {
// name: string;
// address: string;
// }
// 과 같이 정의 된다.
정리
Partial<T> 은 T의 모든 값을 optional한 값으로 정의할 수 있고,
Pick<T, K> 는 T에서 K에 해당하는 값만 추출하여 새로운 타입으로 정의할 수 있고,
Omit<T, K>은 T에서 K에 해당하는 값을 제거하여 새로운 타입으로 정의할 수 있다.
728x90