首页 > 解决方案 > 将函数 reduce 应用于空数组时的问题

问题描述

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;

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

标签: typescripttsc

解决方案


我怀疑有人会改变这一点。Typescript 编译器只关心你是否正确地实例化了数组。

而你做到了。

例如,Java 也是如此。只要变量被正确地实例化,程序员自己负责它是否有内容。


推荐阅读