특정 타입의 모든 속성을 모두 옵션 속성으로 변환한 타입을 생성해준다.
주로 HTTP PUT처럼 데이터를 수정하는 REST API를 전송할 때 종종 사용되는 타입이다.
Pick, Omit과 같이 객체 형태의 타입만 대상 타입으로 취급할 수 있다.
제네릭의 타입을 넣어준 속성들이 전부 옵셔널 처리된다.
Partial<대상 타입>
interface Todo {
id: string;
title: string;
}
type OptionalTodo = Partial<Todo>; // type OptionalTodo = { id? :string; title?: string; }
interface Todo {
id: string;
title: string;
checked: boolean;
}
function updateTodo(todo: Todo) {
...
}
// id 속성만 넘기는 경우
function updateTodo(todo: Pick<Todo, 'id'>) {
...
//id와 checked 속성만 넘기는 경우
function updateTodo(todo: Omit<Todo, 'checked'>) {
...
}
// 할 일 데이터에 정의된 값을 모두 넘기는 경우
function updateTodo(todo: Todo) {
...
}
// 위의 모든 케이스를 만족시킬 수 있다.
function updateTodo(todo: Partial<Todo>) {
...
}
}```
---
출처: [쉽게 시작하는 타입스크립트](https://m.yes24.com/Goods/Detail/119410497)