在香草javascript中,我们可以这样做:
let arr = [1, 2, 3, 4, 5];
let sum = arr.reduce((sum, q) => sum + q);
console.log(sum)
但是在Typescript中,我们必须返回这样的总和:
let arr = [1, 2, 3, 4, 5];
let sum = arr.reduce((sum, q) => {sum + q; return sum});
console.log(sum)
很好奇为什么我们必须在Typescript中返回?如果我不包括return语句,则会得到以下信息:
'(sum:number,q:number)=> void'类型的参数不能分配给'(previousValue:number,currentValue:number,currentIndex:number,array:number [])=> number类型的参数'。 不能将“ void”类型分配给“ number”类型。
这是我正在实现的实际代码:
this.quantity =
salesOrders.map(so=>so.quantity).reduce(
(sum,q)=>{
sum+q;
return sum;
});
}
如果删除了return sum
部分,则VSCode会绘制错误。
此question says添加了return语句以消除错误。