给出这段代码:
interface Obj {
array?: string[]
}
function fuu(obj: Obj) {
const { array } = obj
if (array?.length >= 1) {
// ...
}
}
为什么还是说
'array.length' is possibly 'undefined'.
当 ?
的全部目的是检查它是否是 undefined
时。
我假设这是因为运算符
>= 1
需要一个定义的值。
除了这样做还有其他方法吗:
if (array && array?.length >=1)
,还是const { array = []} = obj
?
评论是对的,答案就在问题里。
无论是
if (array && array?.length >=1)
或者
const { array = []} = obj
是否有足够的替代方案。