未定义收件人时如何有条件地设置对象属性

时间:2019-07-16 18:07:00

标签: javascript error-handling null

我试图有条件地在JS中设置对象属性,但出现以下错误。

  

TypeError:无法读取未定义的属性“地址”

这是由secondary.address抛出的。

let address = {
  prop: primary.address || secondary.address || null
};

是否有一种干净的方法通过将address.prop强制转换为secondary.address而不是抛出错误来以级联方式设置null

1 个答案:

答案 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
};