减少打字稿vs Javascript?

时间:2019-05-26 13:44:21

标签: javascript node.js typescript

在香草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语句以消除错误。

1 个答案:

答案 0 :(得分:2)