为什么 array?.length 仍然警告数组可能未定义?

问题描述 投票:0回答:1

给出这段代码:

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

arrays typescript
1个回答
0
投票

评论是对的,答案就在问题里。

无论是

if (array && array?.length >=1)
或者
const { array = []} = obj
是否有足够的替代方案。

© www.soinside.com 2019 - 2024. All rights reserved.