如何在TypeScript中安全地解构JavaScript对象

时间:2019-02-06 14:34:31

标签: javascript typescript

我想从JavaScript对象中提取属性(如下),但要保护自己免受对象为null或未定义以及属性不存在的影响。也就是说,我希望这些值只是未定义的,并且没有JavaScript错误。

const {id,username,userFirstName,userLastName} = attendeeResults;

4 个答案:

答案 0 :(得分:1)

您可以使用逻辑运算符来实现此目标,例如以下示例:

const nullObject = null;
const { foo, bar } = nullObject || {};

console.log(foo, bar);

答案 1 :(得分:1)

JavaScript允许您在分解对象时定义默认值。 例如:

const {id: 0,username:'',userFirstName:'',userLastName:''} = attendeeResults;

但是如果您的attendeeResults对象为null或未定义,则销毁会引发错误。

答案 2 :(得分:0)

您可以使用以下内容,请注意,我在attendee中省略了用户名,以表明它保留了空值。

const attendeeResults = { id: 1, userFirstName: 'John', userLastName: 'Smith'}
const obj = {
  id: null,
  username: null,
  userFirstName: null,
  userLastName: null
};
Object.assign(obj, attendeeResults);
console.log(obj);

答案 3 :(得分:0)

这可以通过以下方式完成:

const {id, username, ...rest} = {id: 10, username: 'u', firstname:'behzad',lastname:'besharati'};


console.log(id,username,rest);