Closed6

type-challenges やったメモ

kotakota

7- Readonly

ts playground

readonly で読み込み専用

type MyReadonly<T> = { readonly T }

Mapped TypesでT内のオブジェクトを取り出す

type MyReadonly<T> = { readonly [ Key in T]: T[Key] }

keyof で型を取り出す

type MyReadonly<T> = { readonly [ Key in keyof T]: T[Key] }
kotakota

9 - Tuple to Object

ts playground

解答

PropertyKey

Tの型が文字列か数字か記号かを、組み込み型のPropertyKeyを使ってチェックできる。

Mapped type

[ P in T] でTの要素を取り出せる。
ここで、T[number]とすることで配列であるTの型(string | number | Symbol)を取り出すことが出来る。

type TupleToObject<T extends readonly PropertyKey[]> = { [P in T[number]]: P }

参考

https://teppeis.hatenablog.com/entry/2014/12/typescript-hot-issues

このスクラップは3ヶ月前にクローズされました