【发布时间】:2019-12-22 17:48:50
【问题描述】:
我想写一个数组到对象函数,它提取一个属性作为索引,比如:
export const arrayToObject
= <T, K extends keyof T, V extends T[K] & string>(arr: T[], key: K): { [v: V]: T } =>
Object.assign({}, ...arr.map(item => ({[item[key]]: item})));
但它给出了一个编译错误,说 An index signature parameter type must be 'string' or 'number' 为 V,尽管我将 V 类型限制为 string。为什么会出现错误,正确的方法是什么?
【问题讨论】:
标签: typescript types typescript-typings typescript2.0