[TypeScript] 유틸리티 타입 (Partial)

고병표·2022년 2월 10일
0

TypeScript

목록 보기
1/5
post-thumbnail

Partial< T >

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',
});

Readonly < T >

T의 모든 프로퍼티를 읽기 전용(readonly)으로 설정한 타입을 구성합니다, 즉 생성된 타입의 프로퍼티는 재할당할 수 없습니다.

interface Todo {
    title: string;
}

const todo: Readonly<Todo> = {
    title: 'Delete inactive users',
};

todo.title = 'Hello'; // 오류: 읽기 전용 프로퍼티에 재할당할 수 없음

이 유틸리티는 런타임에 실패할 할당 표현식을 나타낼 때 유용합니다.(예, frozen 객체의 프로퍼티에 재할당 하려고 하는 경우)

Object.freeze

0개의 댓글