type MyRequired<T> = {
[K in keyof T]-?: T[K]
}
interface Props {
a?: number;
b?: string;
}
const obj: Props = { a: 5 };
const obj2: MyRequired<Props> = { a: 5 }; // Error
타입 정의에서 -? 를 사용하면 optional protperty 의 물음표를 지울 수 있다..
선택적 프로퍼티를 해제하는 것
https://www.typescriptlang.org/docs/handbook/2/mapped-types.html#mapping-modifiers
type MyRequired<T> = {
-readonly [K in keyof T]: T[K]
}
위와 같이 사용하여 readonly 를 해제할 수도 있다