typescript中html元素的数组类型是什么?

typescript中html元素的数组类型是什么?,types,typescript,Types,Typescript,我有一个typescript变量,用于存储DOM查询的结果: let games = document.getElementsByTagname("game"); 但结果数组的正确类型是什么?我希望有一个包含HtmleElements的数组 // not working let games : Array<HTMLElement> = document.getElementsByTagName("game"); // also not working let games : Nod

我有一个typescript变量,用于存储DOM查询的结果:

let games = document.getElementsByTagname("game");
但结果数组的正确类型是什么?我希望有一个包含HtmleElements的数组

// not working
let games : Array<HTMLElement> = document.getElementsByTagName("game");
// also not working
let games : NodeList<HTMLElement> = document.getElementsByTagName("game");
//不工作
让游戏:Array=document.getElementsByTagName(“游戏”);
//也不起作用
let games:NodeList=document.getElementsByTagName(“游戏”);

您需要使用
NodeListOf
,例如:

let games : NodeListOf<Element> = document.getElementsByTagName("game");
let games:NodeListOf=document.getElementsByTagName(“游戏”);

您可以使用类型断言将其强制放入
HtmleElement[]
,但这会提供误导性的类型信息,并使您的工具存在漏洞。

您可以使用数组/数组作为类型,查看是否有人可以工作?我在使用数组时遇到此错误:“NodeListOf”不可分配给类型“Element[]”。类型“NodeListOf”中缺少属性“push”。请使用NodeListOf而不是数组。它可能会解决您的错误。如果您想在以后的任何操作中使用该元素,您需要将其强制转换为
节点列表
,否则它不允许您获取innerText,请单击等等。。我不知道“NodeListOf”实际上是一种。。。(“Of”是什么意思?)。还有,为什么DOM元素有这么多不同的类型?(NodeList、NodeListOf、Element和HTMLElement)。为了从我的DOM中获取一个div,从一种类型转换到另一种类型似乎很麻烦。“of”表示它是X类型的节点列表,例如
NodeListOf
表示节点类型HTMLElement的列表。您需要强制转换的原因是javascripts QuerySelector或其他选择器可以生成数百种节点类型,在typescript中,如果生成了错误的节点类型,您希望确保抛出错误。。