😎
Type Challengeに入門する
こんばんは。Type Challgeに入門する2日目です。本日の問題はReadonly<T>
を自作するという問題です。
まず、Readonly<T>
について復習します。
Readonly<T>は、オブジェクト型Tのプロパティをすべて読み取り専用にするユーティリティ型です。
typeChallenge.ts
type TypeA = ReadOnly<{ foo: string; bar: number }>
// ↑と↓は同じ
type TypeB = { readonly foo: string; readonly bar: number }
簡単に言えば全てのプロパティにreadonly
をつけるものです。全てのプロパティに処理を加えるのはMapped Typeですね。
MyReadOnly.ts
type MyReadOnly<T> = { readonly[Key in T]: T[Key] }
今回は全てのプロパティにreadonly
をつけたいのでkeyの前にこれをおきます。これだけですね。
今日は簡単でした。明日も頑張ります。
Discussion