如何修复数组中的流类型长度错误?

时间:2018-04-02 10:35:57

标签: reactjs flowtype flow-typed

我的代码如下所示

//@flow
type something = (input:Array<{data:?number}|{data<Object>}>) => boolean

function some:something(own){
 if(!own[0].data.length)
  return false
}

我收到了消息: 财产length, 无法在可能为null的值上访问属性 null或undefined

如何修复? 因为在函数中有些可以解析  1.具有内部对象或可能不是对象的数组。  2.具有内部Object和Object的数组可以是具有Object of Array或Array of null / undefine的数据  3.如何像那样声明流类型的长度

1 个答案:

答案 0 :(得分:0)

flow会出现错误,因为您尝试访问length上的属性data - 您声明的属性可能未定义...因此您需要“指示”您检查的流量:< / p>

function some:something(own){
 if(own[0].data && !own[0].data.length) // if an data property exists AND is not an array
  return false
}

顺便说一句,如果您只是尝试检查own[0].data是否只是一个数组:

if(Array.isArray(own[0].data)) {