挑战
将一个元组类型转换为对象类型,这个对象类型的键/值和元组中的元素对应。
例如:
解答
这道题需要得到一个对象类型,所以我们应该想到通过遍历元组 + 映射类型的方式,得到一个新的对象类型。
要从元组得到联合类型,在 tuple-to-union
题目里有解释过。
这个答案会发现 @ts-expect-error
case 仍然不通过。
是因为在 JavaScript 中,对象的属性键只能是字符串、数字或者 symbol。所以 extends 后面的 any 需要替换掉。
TypeScript 内置了一个类型 PropertyKey
:
我们可以直接使用这个类型,所以最终实现为:
参考链接