首页 > 解决方案 > 你如何在打字稿中检查数组的类型

问题描述

假设我要检查的数组是单一类型的简单数组,你如何检查这个数组的类型?

我试过做

let arr1: number[] = [1,2,3,4,5];

console.log(typeof arr1[0] === "number"); // logs true

这可行,但如果数组为空,如下所示:

let arr2: number[] = [];

console.log(typeof arr2[0] === "number"); // logs false

这种方法不成立。

我的问题有两个:有没有更好的方法来做到这一点?如果是这样,它是否也适用于空数组?

上面代码的游乐场链接

标签: arraystypescripttypes

解决方案


没有办法用“从盒子里”的 javascript 数组来做这种方法。你只有这些工具:

  • Typescript 中的静态类型检查
  • typeof/Array.isArray可以检查对象是否为数组的事实

javascript 中有不同的运行时类型检查工具:例如type-check。但是如果你使用 Typescript 并且与数据源有一个字符串契约,那么你可能不需要这样的工具。


推荐阅读