我在学打字机。
在尝试解决以下错误时,我遇到了类型问题:
元素隐式具有"any"类型,因为类型"0"的表达式不能用于索引类型"number|(人数|number [])[]"。类型" number "上不存在属性" 0|(人数|编号[])[]'。
下面是我的代码
let arr = [2, [22, [222]], 2222];
console.log(arr[1][0]); // 22
我四处搜索,找到了对象的例子,但我不知道如何使用嵌套数组。
如何解决这个问题?
谢谢。
我在学打字机。
在尝试解决以下错误时,我遇到了类型问题:
元素隐式具有"any"类型,因为类型"0"的表达式不能用于索引类型"number|(人数|number [])[]"。类型" number "上不存在属性" 0|(人数|编号[])[]'。
下面是我的代码
let arr = [2, [22, [222]], 2222];
console.log(arr[1][0]); // 22
我四处搜索,找到了对象的例子,但我不知道如何使用嵌套数组。
如何解决这个问题?
谢谢。
2条答案
按热度按时间e5nszbig1#
这个错误很有意义,因为类型系统并不确定你访问的索引
arr[1]
是一个数组,同样,arr[1]
也可能是一个数字。这正是typesript给你的好处,在普通的javascript中你可以写
arr[0][1]
,而且不会有编译错误,但是,你会在运行时得到一个讨厌的错误,因为arr[0]
根本不是一个数组。只有在确保
arr[1]
实际上是一个数组之后,您才能将arr[1]
用作数组类型。qacovj5a2#
这似乎对我有用。
出错前:
添加检查项“Array.isArray”后: