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>;
解答
我们需要从数组中获取所有的值,并将其作为新对象中的键和值。
这个使用索引类型很容易。我们可以通过使用T[number]
从数组中获取值。在映射类型的
帮助下,我们可以迭代T[number]
中的这些值,并返回一个新的类型,其中键和值
是T[number]
的类型:
type TupleToObject<T extends readonly PropertyKey[]> = { [K in T[number]]: K };
评论