【发布时间】:2019-07-26 16:11:43
【问题描述】:
我有 2 个接口,我知道它们都有一个字段:
{
[uuid: string]: string
}
现在我有一个函数,我希望能够传递任何具有该字段的接口并对其进行转换:
private uuidMap<ElementTypes>(arr: ElementTypes[]): Record<string, ElementTypes> {
return arr.reduce((obj, item) => ({ ...obj, [item.uuid]: item }), {});
}
这将改变
[
{ uuid: "a", value: "A" },
{ uuid: "b", value: "B" },
{ uuid: "c", value: "C" }
]
到这里
{
a: { uuid: "a", value: "A" },
b: { uuid: "b", value: "B" },
c: { uuid: "c", value: "C" }
}
现在我想知道如何正确地为此编写类型;
如何接受具有字段[uuid: string]: string 的任何对象数组以及如何返回该类型的对象?
【问题讨论】:
-
我想你的意思是他们有
{ uuid: string}。{ [uuid: string]: string }是一个索引签名,所以他们可以有任何字段
标签: typescript typescript-typings