【发布时间】:2018-07-14 01:39:34
【问题描述】:
当尝试将对象数组映射到具有相同对象但使用属性值作为索引键的数组时,我尝试为情况创建正确的类型。
interface ValueDefinition {
name: string;
}
function getByName<V extends ValueDefinition>(valuDefinitions: V[]) {
let out = {}
for (const key in valuDefinitions) {
out[valuDefinitions[key].name] = valuDefinitions[key];
}
return out;
}
const obj: ValueDefinition = {
name: 'super'
};
const objKey = getByName([
obj
]);
key.super; // Typings for this output
我正在寻找这样的东西:
type WithKey<D extends ValueDefinition> = {
[key: D['name']]: D;
}
谢谢。
【问题讨论】:
-
这些名称在编译时是否已知?
-
是的,众所周知。
标签: typescript generics typescript-typings