問題に挑戦!
組み込みの型ユーティリティ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
💡ヒント
T
のすべてのプロパティをreadonly
にする型を実装します。
[K in keyof T]
を使うことで、T
のすべてのプロパティをオブジェクトのキーとして列挙できます。
列挙したプロパティをreadonly
にするには、readonly
修飾子を使います。