Javascript:如果对象未传递给函数,则忽略解构的对象参数

标签 javascript node.js ecmascript-6

在我的 Express 服务器中,我有一个函数,如果将请求正文传递给它,它会像这样解构其中的属性:

export function createProxiedRequestBody({ dateRange, dateFrom, filters },
dateDefault) {
}

这是一个常见的函数,传递给它的对象可能为空,但显然会导致错误,如下所示:

无法读取 null 属性“dateRange”

是否有一种奇特的 JavaScript 方法可以忽略参数中的这些内容,而不是在函数中编写 if block 语句?

最佳答案

您可以使用具有默认值分配的解构参数:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters#Destructured_parameter_with_default_value_assignment

function createProxiedRequestBody(
   { dateRange, dateFrom, filters } = {dateRange: null, dateFrom: null, filters: null},
   dateDefault) { 
       console.log('dateRange:' + dateRange);
}

createProxiedRequestBody();  // no error, dateRange === null
createProxiedRequestBody({dateRange: 2});

关于Javascript:如果对象未传递给函数,则忽略解构的对象参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54237356/

相关文章:

node.js - 如何将对象从 Node 传递到 View 中以便在 Angular 中使用?

javascript - 如何使用 Javascript 从对象数组内的数组属性获取不同的值

javascript - 访问数组中的对象属性值 - JavaScript

javascript - 如何减慢这个 for 循环并每 400 毫秒设置一次状态?

node.js - 我应该如何实现更好的 Docker 工作流程?

node.js - 使用 node.js 在每个循环中使用延迟 promise

javascript - 评估 ES6 数组理解字符串

javascript - JQuery .each 为此提供 Object{}

javascript - Node catch() 错误不显示文件发生的错误

javascript - 如何在根 <svg> 元素之前插入注释?