【发布时间】:2021-07-20 20:10:39
【问题描述】:
这是这个问题的延伸:TypeScript: return a union of the input string array's literal values?
这个问题扩展了最后一个问题,将文字元组嵌入到对象上的任意键中,并将它们映射到输出键上。
function myfn<T extends string>(opts: { [key: string]: T[] }) {
const out: ??? = {};
for (const [key,val] of Object.entries(opts)) {
out[key] = val[0];
}
return out;
}
const result = myfn({
foo: ['a', 'b', 'c'],
bar: ['x', 'y', 'z'],
})
// Expected: {
// foo: 'a' | 'b' | 'c',
// bar: 'x' | 'y' | 'z',
// }
myfn 中/上需要哪些类型才能获得预期的类型?
我知道这与Mapped Types 有关,但我无法弄清楚它应该是什么。
【问题讨论】:
标签: typescript generics