我有这个功能来展平对象
export function flattenObject(object: Object, prefix: string = "") {
return Object.keys(object).reduce((messages, key) => {
const value: Object | string = object[key];
const prefixed = prefix ? `${prefix}.${key}` : key;
const flatMessages = { ...messages };
if (typeof value === "string") {
flatMessages[prefixed] = value;
} else {
Object.assign(flatMessages, flattenObject(value, prefixed));
}
return flatMessages;
}, {});
}
在第3行,有一部分object[key]
表示其未覆盖的
[流程覆盖]未覆盖代码(参数)对象:对象[流程] object:Object
我不完全确定为什么,因为它确实说它是一个对象?然而,物体的形状可能会有所不同,所以我最初的假设可能是由于它的松散定义?如果是,是否有警告消息的解决方法?
答案 0 :(得分:1)
我认为这是由于Flow希望对象参数的注释比Object
更好,您可以尝试{}
快速获胜或为其创建类型注释(推荐),如上所述{ {3}}
E.g。
flattenObject(object: { foo: string }, prefix: string = "") { ...