如何在分配给变量之前检查未定义

How to check for undefined before assigning to variable

我正在使用查找方法来提取 ID(字符串),但这返回了一个未定义的值,因为它不存在。

const additionalLinePhoneNumber = products.find(product => product.name === 'segundaLinea').id;

产品有以下:

(2) [ProductInventoryList, ProductInventoryList]
0: ProductInventoryList {_id: "12345", _name: "lineaFija", _productInventoryCharacteristics: ProductInventoryCharacteristics}
1: ProductInventoryList {_id: "12345", _name: "primeraLinea", _productInventoryCharacteristics: ProductInventoryCharacteristics}
length: 2

所以没有返回“segundaLinea”,所以查找给出了以下错误:

ERROR 错误:未捕获(承诺):TypeError:无法读取未定义的 属性 'id' 类型错误:无法读取未定义的 属性 'id'

我试过这样做但没有用:

const additionalLinePhoneNumber = products.find(product => product.name === 'segundaLinea').id ? undefined : '';

我错过了什么?

试试下面的遮阳篷:

您可以这样使用 optional chaining

const additionalLinePhoneNumber = products.find(product => product.name === 'segundaLinea')?.id;

编辑:

对于 Typescript,version 3.7 添加了对可选链接的支持。如果你不能更新你的版本,你必须在多行上做:

const segundaLinea = products.find(product => product.name === 'segundaLinea');
const additionalLinePhoneNumber = segundaLinea ? segundaLinea.id : "";

如果你必须多次执行此操作,你可能应该编写一个辅助函数。