type-challenges/README.md at main · type-challenges/type-challenges
Readonly
を使用しないで、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
mapped type
を利用して、T
をすべて読み取り専用にします。
type MyReadonly<T> = { readonly [K in keyof T]: T[K] }
Readonly<T>
は、オブジェクト型Tのプロパティをすべて読み取り専用にするユーティリティ型。挙動は今回実装したMyReadonly<T>
と同じ今日は昨日の発展系だったので、自力で解けました! TypeScript初めて数日の身からすると、まずは型の見た目に拒絶反応を起こさないようにすることが大切なので、このtypechallengesはいいですね〜。明日も頑張ります。