T
의 모든 프로퍼티를 선택적으로 만드는 타입을 구성합니다. 이 유틸리티는 주어진 타입의 모든 하위 타입 집합을 나타내는 타입을 반환합니다.
=> 일일이 '?' 붙일 필요 없이 Partial< Todo > 처럼 설정해 주면 안에있는게 선택적으로 바뀜
interface Todo {
title: string;
description: string;
}
function updateTodo(todo: Todo, fieldsToUpdate: Partial<Todo>) {
return { ...todo, ...fieldsToUpdate };
}
const todo1 = {
title: 'organize desk',
description: 'clear clutter',
};
const todo2 = updateTodo(todo1, {
description: 'throw out trash',
});
T
의 모든 프로퍼티를 읽기 전용
(readonly)으로 설정한 타입을 구성합니다, 즉 생성된 타입의 프로퍼티는 재할당할 수 없습니다.
interface Todo {
title: string;
}
const todo: Readonly<Todo> = {
title: 'Delete inactive users',
};
todo.title = 'Hello'; // 오류: 읽기 전용 프로퍼티에 재할당할 수 없음
이 유틸리티는 런타임에 실패할 할당 표현식을 나타낼 때 유용합니다.(예, frozen 객체의 프로퍼티에 재할당 하려고 하는 경우)
Object.freeze