如何检查变量是否是TypeScript中的元组

时间:2016-08-09 18:37:41

标签: typescript

我试图查看传递给函数的变量(可以是数字数组还是元组数组)是否为元组数组。

function (times: Array<number> | Array<[number, number]>) {
    if (times[0] instanceof [number, number]) {
        console.log("Its the tuple one!");
    }
}

上面的代码不起作用,我也试过if (times[0] instanceof tuple)),但这也不起作用。怎么办呢?

谢谢!

1 个答案:

答案 0 :(得分:2)

根据Basic Types > Tuple文档:

  

元组类型允许您表示一个固定类型的数组   元素的数量是已知的,但不必相同。

意味着元组只是数组 此外,由于typescript编译为javascript,而javascript没有元组,因此在运行时检查类型意味着您需要检查javascript类型而不是在运行时不存在的ts类型。

回答你的问题:

function fn(times: Array<number> | Array<[number, number]>) {
    if (times[0] instanceof Array) {
        console.log("Its the tuple one!");
    }
}