mosya Type Challenges

問題に挑戦!

組み込みの型ユーティリティReadonly<T>を使用せず、T のすべてのプロパティを読み取り専用にする型を実装します。実装された型のプロパティは再割り当てできません。

例えば:

interface Todo {
  title: string;
  description: string;
}

const todo: MyReadonly<Todo> = {
  title: "Hey",
  description: "foobar",
};

todo.title = "Hello"; // Error: cannot reassign a readonly property
todo.description = "barFoo"; // Error: cannot reassign a readonly property
引用元

この問題はType Challengesの以下の問題を記載したものです。

💡ヒント

T のすべてのプロパティをreadonlyにする型を実装します。
[K in keyof T]を使うことで、Tのすべてのプロパティをオブジェクトのキーとして列挙できます。
列挙したプロパティをreadonlyにするには、readonly修飾子を使います。

🙌 解説はこちら