我使用 find 方法来提取 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”未返回,因此查找给出了以下错误:
错误错误:未捕获(承诺中):类型错误:无法读取未定义的属性“id” 类型错误:无法读取未定义的属性“id”
我尝试这样做但不起作用:
const additionalLinePhoneNumber = products.find(product => product.name === 'segundaLinea').id ? undefined : '';
我错过了什么?
尝试下面的遮阳篷:
您可以像这样使用可选链:
const additionalLinePhoneNumber = products.find(product => product.name === 'segundaLinea')?.id;
对于 Typescript,在 3.7 版本中添加了对可选链的支持。如果您无法更新版本,则必须在多行上进行更新:
const segundaLinea = products.find(product => product.name === 'segundaLinea');
const additionalLinePhoneNumber = segundaLinea ? segundaLinea.id : "";
如果您必须多次执行此操作,您可能应该编写一个辅助函数。
const segundaLinea = products.find(product => product?.name === 'segundaLinea');
const extraLinePhoneNumber = segundaLinea?.id;