无法弄清楚为什么功能的某些部分未被涵盖,流程

时间:2018-03-03 07:11:54

标签: javascript flowtype flow-typed

我有这个功能来展平对象

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

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

1 个答案:

答案 0 :(得分:1)

我认为这是由于Flow希望对象参数的注释比Object更好,您可以尝试{}快速获胜或为其创建类型注释(推荐),如上所述{ {3}}

E.g。

flattenObject(object: { foo: string }, prefix: string = "") { ...