我的代码如下所示
//@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.如何像那样声明流类型的长度
答案 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)) {