use*_*348 1 javascript flowtype flow-typed
我不明白我当前遇到的流程错误。我有一个Javascript对象object(dataObject),我想将其转换为对象数组,因此可以使用Object.values(dataObject)。然后,我使用以下方法遍历数组中的每个对象:
const dataObjectArray = Object.values(dataObject);
return dataObjectArray((data: DataObject) => {
const { typeA, typeB } = data;
return {
TYPE_A: typeA,
TYPE_B: typeB,
};
});
Run Code Online (Sandbox Code Playgroud)
但是我收到以下流类型错误:
我不确定如何匹配类型。目前,我的DataObject流类型是
type DataObject = {
typeA: string,
typeB: string,
};
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激。谢谢!
该Object.values函数的类型定义无法知道传递给它的参数是一个值都相同的对象。您可以轻松地做Object.values({foo: 4, bar: "str"})。类型定义是
(any) => Array<mixed>
Run Code Online (Sandbox Code Playgroud)
表示您正在.map使用type的值Array<mixed>。
这意味着,如果您要将其用作对象,则您的方法将不起作用。假设您的“对象的对象”键入为
type DataObjects = {
[string]: DataObject,
}
Run Code Online (Sandbox Code Playgroud)
您可能会做得更好
function values(objs: DataObjects): Array<DataObject> {
Object.keys(objs).map(key => objs[key]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1345 次 |
| 最近记录: |