我必须投这个:
let selections = list.filter(obj => obj.type === "myType");
我收到一个过滤器的错误,上面写着
类型"节点类型"上不存在筛选器
我试图遵循这些建议 TypeScript 强制转换数组
let selections = <NodeType[]>list.filter(obj => obj.type === "myType");
但我仍然得到同样的错误,我看不出如何解决这个问题。 在纯JavaScript中,它可以工作。
更新:感谢下面的答案,这让我意识到我在控制台中测试时调用了正确的方法,而在代码编辑器中调用了错误的方法。
你确定这个完全相同的东西在纯JavaScript中工作,而不仅仅是类似的东西吗?如果list
是一个来自浏览器DOM的数组,那么它很可能真的没有filter
方法。这些DOM数组只是"ArrayLike
",而不是真正的JavaScript数组。
尝试Array.from(list)
或Array.from(list as NodeType[])
,看看是否有帮助。
您的错误消息抱怨filter
方法在NodeType
上不可用 在您的示例中,您指定了一个NodeType
数组。
试试这个:
<NodeType>list
不过,它仍然不是一个数组。