只有当它真实时才能解构对象

Lev*_*Lev 7 javascript ecmascript-6

假设我想像这样解构我的函数参数

const func = ({field: {subField}}) => subField;
Run Code Online (Sandbox Code Playgroud)

如果字段是undefined或者null?如何防止此错误抛出?

Ber*_*rgi 5

您可以使用默认值:

const func = ({field: {subField} = {}}) => subField;
Run Code Online (Sandbox Code Playgroud)

它只适用于{field: undefined},而不是null作为一个值.为此,我只是使用

const func = ({field}) => field == null ? null : field.subField;
// or if you don't care about getting both null or undefined respectively
const func = ({field}) => field && field.subField;
Run Code Online (Sandbox Code Playgroud)

另请参阅javascript test以了解常规解决方案的嵌套对象键的存在.