Javascript 流类型错误:属性的类型未知。此类型与数组类型不兼容

Javascript 流类型错误:属性的类型未知。此类型与数组类型不兼容,javascript,reactjs,react-jsx,flowtype,Javascript,Reactjs,React Jsx,Flowtype,我有以下JSX。比如: { event.divisions && event.divisions.edges && (event.divisions.edges: Array<Object>) .map(d => d.node) .map(division => ( <div>{division}</div> )) } { 事件。分区&& 事件、分割、边缘&& (ev

我有以下JSX。比如:

{
  event.divisions &&
  event.divisions.edges &&
  (event.divisions.edges: Array<Object>)
    .map(d => d.node)
    .map(division => (
      <div>{division}</div>
    ))
}
{
事件。分区&&
事件、分割、边缘&&
(event.divisions.edges:数组)
.map(d=>d.node)
.map(分区=>(
{除法}
))
}
如果不强制转换,它会告诉我它缺少注释。通过强制转换,我得到以下错误:

 81:    (event.divisions.edges: Array<Object>)
         ^^^^^^^^^^^^^^^^^^^^^ property `edges` of unknown type. This type is incompatible with
 81:    (event.divisions.edges: Array<Object>)
                                ^^^^^^^^^^^^^ array type
81:(event.divisions.edges:数组)
^^^^^^^^^^^^^^^^^^^^^未知类型的属性“edges”。此类型与不兼容
81:(event.divisions.edges:数组)
^^^^^^^^^^^^^数组类型

这怎么可能是不相容的呢?那怎么可能是未知的呢?我明确地告诉了它类型。

您可以按照以下方式映射对象数组

{
  event.divisions &&
  event.divisions.edges &&
  event.divisions.edges.map(d => {
      return d.node.map(division => (
      <div>{division}</div>
    ))
   }

}
{
事件。分区&&
事件、分割、边缘&&
event.divisions.edges.map(d=>{
返回d.node.map(分区=>(
{除法}
))
}
}

尝试这样做:

{
  event.divisions &&
  event.divisions.edges &&
  (event.divisions.edges: $ReadOnlyArray<Object>)
    .map(d => d.node)
    .map(division => (
      <div>{division}</div>
    ))
}
{
事件。分区&&
事件、分割、边缘&&
(event.divisions.edges:$ReadOnlyArray)
.map(d=>d.node)
.map(分区=>(
{除法}
))
}

是否要在Flow中循环对象event.divisions.edgescast的键是安全的。它仍将验证您提供的类型是否正确。如果不知道
event
的来源及其类型,则无法解决问题。不过,这样做会导致另一个Flow错误。“81:event.divisions.edges^调用方法
map
。无法对未知类型的81:event.divisions.edges^^^^^^^^^^^属性
”调用方法“因此,如果我不添加强制类型转换,flow会警告我边未知。如果我添加强制类型转换,flow会给我一个不兼容的错误。您如何获取值,即event.divisions.edgesame问题…:-(