使用过滤器方法强制转换数组



我必须投这个:

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

不过,它仍然不是一个数组。

最新更新