我试图查看传递给函数的变量(可以是数字数组还是元组数组)是否为元组数组。
function (times: Array<number> | Array<[number, number]>) {
if (times[0] instanceof [number, number]) {
console.log("Its the tuple one!");
}
}
上面的代码不起作用,我也试过if (times[0] instanceof tuple))
,但这也不起作用。怎么办呢?
谢谢!
答案 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!");
}
}