본문 바로가기
STUDY/JavaScript

[TypeScript] Partial ,Pick , Omit 차이

by bottlesun 2023. 2. 2.
728x90

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

댓글