더북(TheBook)

같은 원리로 모든 속성을 readonly로 만들거나 readonly가 아니게 만들 수 있습니다. Readonly 타입입니다.

type MyReadonly<T> = {
  readonly [P in keyof T]: T[P];
};

type Result = MyReadonly<{ a: string, b: number }>;
/*
type Result = {
  readonly a: string;
  readonly b: number;
}
*/

모든 속성을 readonly가 아니게 만들려면 -readonly를 대신 적으면 됩니다.