无法弄清楚为什么功能的某些部分没有被覆盖,流动

问题描述 投票:0回答:1

我有这个功能来压扁一个物体

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]说它没有被发现

[流程覆盖]未覆盖代码(参数)对象:对象[Flow]对象:对象

我不完全确定为什么,因为它确实说它是一个对象?然而,物体的形状可能会有所不同,所以我最初的假设可能是由于它的松散定义?如果有,是否有警告消息的解决方法?

javascript flowtype flow-typed
1个回答
1
投票

我相信这是因为Flow期望对你的对象参数比Object更好的注释,你可以尝试{}快速获胜或为here创建类型注释(推荐)。

EG

flattenObject(object: { foo: string }, prefix: string = "") { ...
© www.soinside.com 2019 - 2024. All rights reserved.