在TypeScript文件中,我定义了一个3D数组:
var myArr = ['one', [[19, 1], [13, 1], [86, 1], [12, 2]],
'two', [[83, 1], [72, 1], [16, 2]],
'three', [[4, 1]]];
function testArray(){
console.log(myArr[1].length);
}
我在长度属性下收到警告:
“{}”
类型中不存在“属性'长度'
我有什么办法可以删除此警告吗?
答案 0 :(得分:12)
我在这里阅读了类似的帖子: How can I stop "property does not exist on type JQuery" syntax errors when using Typescript?
这解释了我可以转换为< any>。
这对我有用:
function testArray(){
console.log((<any>myArr[1]).length);
}
答案 1 :(得分:3)
选项1:升级到最前沿的编译器并获取联合类型
选项2:向变量声明添加类型注释:
var myArr: any[] = ['one', [[19, 1], [13, 1], [86, 1], [12, 2]],
'two', [[83, 1], [72, 1], [16, 2]],
'three', [[4, 1]]];
function testArray(){
console.log(myArr[1].length);
}
答案 2 :(得分:1)
我之前遇到过此错误,您必须将类型强制转换为任意 使用您必须扩展的泛型。
查看示例打击:
const result = <T extends any>(arr:T[]):T => {
return arr[arr.length - 1]
}
result([1,2,3])