将函数reduce应用于空数组

时间:2018-06-09 17:18:47

标签: typescript tsc

typescript编译器不会使用以下代码标记任何错误。

const numbers: number[] = [];
const sum: number = numbers.reduce((a, num) => (a + num));

但是,执行转置代码时,nodejs会返回以下异常

TypeError: Reduce of empty array with no initial value

我认为这会导致很多运行时错误,也许打字稿应该建议我在使用reduce函数之前检查数组是否为空。

const numbers: number[] = [];
const sum: number = numbers.length > 0 ? numbers.reduce((a, num) => (a + num)) : 0;

我应该将其报告为问题吗?

1 个答案:

答案 0 :(得分:2)

我怀疑有人会改变这一点。 Typescript编译器只关心您是否正确地对数组进行了定向。

你做到了。

例如,Java就是这样做的。只要变量被正确实例化,程序员就自己是否有内容负责。