【问题标题】:How do you check the type of an array in typescript你如何在打字稿中检查数组的类型
【发布时间】:2021-04-03 08:55:30
【问题描述】:

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

我试过了

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

这个方法不成立。

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

Playground link 上面的代码。

【问题讨论】:

    标签: arrays typescript types


    【解决方案1】:

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

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

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

    【讨论】:

    • 您能否详细说明静态类型检查的含义?
    • @grian typescript 是静态类型的,因此它通过类型注释提供静态类型,以便在(并且仅)编译时启用类型检查
    • 啊我明白你的意思了,我应该在原帖中提到这个,但是我的输入数组是any[]类型的(这是不好的做法,但这是一个个人项目我并不特别关心),所以我需要检查我的一个函数的输入数组的类型,这就是为什么你的回答让我感到困惑。
    猜你喜欢
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 2019-07-30
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 2020-03-26
    相关资源
    最近更新 更多