type-challenges 2日目: 7-Readonly

問題 & 回答

type-challenges/README.md at main · type-challenges/type-challenges

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修飾子

Readonly型

感想

今日は昨日の発展系だったので、自力で解けました! TypeScript初めて数日の身からすると、まずは型の見た目に拒絶反応を起こさないようにすることが大切なので、このtypechallengesはいいですね〜。明日も頑張ります。