在我的 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/