typescript - 将函数 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;
我应该将其报告为问题吗?
解决方案
我怀疑有人会改变这一点。Typescript 编译器只关心你是否正确地实例化了数组。
而你做到了。
例如,Java 也是如此。只要变量被正确地实例化,程序员自己负责它是否有内容。
推荐阅读
- css - CSS:如何仅在支持悬停的设备上允许悬停状态?
- javascript - 如何在光滑的滑块后更改回调上触发 createjs 动画?
- python - 如何在 django python 的 url 中传递可选参数
- vb.net - 从 settings.ini 文件自动加载 TabControl
- xml - 在 xslt 中循环并连接一个数组
- c++ - 使用 Catch2 以全精度打印浮点值
- excel - 过滤数据后复制第二行直到最后一行,列中有空格
- excel - 如何按时间顺序对 Excel 数据透视表进行排序
- react-native - 如何在从 API 获取的地图上呈现标记?
- javascript - 在正则表达式反向引用中标记的八进制文字