Tuple to Object
課題
配列が与えられたとき、配列の各要素をキーと値とするオブジェクト型に変換してくださ い。
例:
const tuple = ["tesla", "model 3", "model X", "model Y"] as const;
// expected { tesla: 'tesla', 'model 3': 'model 3', 'model X': 'model X', 'model Y': 'model Y'}
const result: TupleToObject<typeof tuple>;
解答
配列のすべての値を取り出し、新しいオブジェクトのキーと値とする必要があります。
これは Indexed Access 型を使用することがわかれば簡単です。T[number]
により配列
から値を取り出し、さらに Mapped 型 を用いて T[number]
に含まれる値を走査するこ
とで、T[number]
の型をキーと値とする新しい型を返すことができます:
type TupleToObject<T extends readonly PropertyKey[]> = { [K in T[number]]: K };
コメント