Type 을 옵션으로 설정하여 구성한다. 해당 유틸리티는 주어진 타입이 서브셋으로 사용된다.
interface Props {
a?: number;
b?: string;
}
const obj: Props = { a: 5 };
const obj2: Required<Props> = {
a: 5,
// b: undefined
// -> required in type 'Required<Props>'
};
interface Todo{
title: string;
}
const todo: Readonly<Todo> = {
title:'Delete ~ inactive user'
}
todo.title = '!!'
// -> annot assign to 'title' because it is a read-only property.ts
→ 해당 유틸리티는 런타임 시점에서 실패하여 할당 관련한 표현에 사용하기 유용한다.
Object.keys
의 대상이 되는 키들을 유니온 타입으로 선언하고Object.values
대상에 되는 값들을 인터페이스로 선언하여 다음과 같이 사용 할 수 있다.