我试图有条件地在JS中设置对象属性,但出现以下错误。
TypeError:无法读取未定义的属性“地址”
这是由secondary.address
抛出的。
let address = {
prop: primary.address || secondary.address || null
};
是否有一种干净的方法通过将address.prop
强制转换为secondary.address
而不是抛出错误来以级联方式设置null
?
答案 0 :(得分:1)
您可以使用shorCircuiting &&
let address = {
prop: primary && primary.address || secondary && secondary.address || null
};
或者您可以使用Optional Chaining
,这是第2阶段的建议,如果您的项目已经使用babel
,则可以使用babel-plugin-proposal-optional-chaining
let address = {
prop: primary?.address || secondary?.address || null
};