-1

我想知道如何在不设置strictNullchecks为 false 的情况下解决这个问题。

if (someArray.find(element => element.id === x.id) {
    return someArray.find(element => element.id === x.id).message
}

或者

const x = someArray.find(element => element.id === x.id) ? someArray.find(element => element.id === x.id).message : "No message"

strictNullChecks如您所知,当我将 设置为 true时,TypeScript 会显示类似“对象可能未定义”的错误。

strictNullChecks将其设置为false是最佳选择吗?

------- 添加的内容 -------

屏幕截图

if (self.cases.find(element => element.code === self.statusCode)) {

                // NOTE: do not use 'case' to variable instead of the 'selectedCase'
                const selectedCase = self.cases.find(element => element.code === self.statusCode)
                console.log(selectedCase.message)
                return (
                    self.statusCode + " " + selectedCase.message
                )
            } 

Q1。当我尝试使用“案例”作为变量时。它需要变量声明。是预先声明的词吗?

Q2。并且console.log(selectedCase.message)也会selectedCase.message发生错误Object is possibly undefined

为什么会发生这种情况..?

4

1 回答 1

0

与其搜索数组两次,不如将结果存储在一个临时变量中,然后检查它是否已定义。

例如:

const foundElement = someArray.find(...)

if (foundElement) {
  console.log(foundElement.message)
}
于 2020-02-01T08:44:19.950 回答