假设我想像我这样构造我的函数参数
const func = ({field: {subField}}) => subField;
如果字段为undefined
或null
,如何防止此错误?
答案 0 :(得分:5)
您可以使用默认值:
const func = ({field: {subField} = {}}) => subField;
它仅适用于{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;
有关一般解决方案,另请参阅javascript test for existence of nested object key。
答案 1 :(得分:1)
您只能部分销毁并使用带有支票的subField
参数。
var fn = ({ field }, subField = field && field.subField) => subField;
console.log(fn({ field: null }));

答案 2 :(得分:0)
修复null和undefined案例的好方法是以下
const func = ({field}) => {
let subField = null;
if(field) {
({subField} = field);
}
return subField
};
如果您只想处理未定义字段的情况,您可以
const func = ({field: {subField} = {}}) => subField;
如果field
为undefined
,则默认空对象用作其值