在我的快速服务器中,我有一个函数,如果将请求主体传递给它,它会像这样破坏其属性:
export function createProxiedRequestBody({ dateRange, dateFrom, filters },
dateDefault) {
}
它是一个通用函数,传递给它的对象可能是无效的,但显然会引起如下错误:
Cannot read property 'dateRange' of null
。
是否有一种奇特的JavaScript方法,我可以在参数中忽略这些而不是在函数中编写if
块语句?
答案 0 :(得分:1)
您可以将结构化参数与默认值分配结合使用: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});
答案 1 :(得分:0)
您可以将默认值传递给要忽略的参数
类似以下内容
function foo (x, y = 10) {
return x + y;
}
console.log("Ignore y. Sum = "+ foo(10)); //It will ignore y while calling foo function
console.log("Without ignoring y. Sum = "+ foo(10, 20)); //It assign value to y i.e 20