打字稿中html元素的数组类型是什么?

Kok*_*oko 7 types typescript

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

let games = document.getElementsByTagname("game");
Run Code Online (Sandbox Code Playgroud)

但是结果数组的正确类型是什么?我期待一个包含htmlelements的数组?

// not working
let games : Array<HTMLElement> = document.getElementsByTagName("game");
// also not working
let games : NodeList<HTMLElement> = document.getElementsByTagName("game");
Run Code Online (Sandbox Code Playgroud)

Fen*_*ton 7

你需要使用NodeListOf<T>,例如:

let games : NodeListOf<Element> = document.getElementsByTagName("game");
Run Code Online (Sandbox Code Playgroud)

您可以使用类型断言强制它进入HTMLElement[],但这会产生误导性的类型信息并使您的工具撒谎.

  • 啊..我没有意识到"NodeListOf"实际上是一种类型......("Of"是什么意思?).另外,为什么DOM元素有这么多不同类型?(NodeList,NodeListOf,Element和HTMLElement).从一种类型转换到另一种类型只是为了从我的DOM中获取div似乎很麻烦. (2认同)