所以,我使用querySelectorAll获取了一个匹配选择器的元素列表,它将它们存储在NodeList中。
然后我用forEach循环扫描NodeList,此时每个individualItem的类型都是“Element”。
然而,我将这些individualItem提供给一个函数“doThing()”,该函数期望individualItem的类型为“HTMLElement”(我使用的是typescript)。我想知道是否有一些内置的js函数将“Element”类型转换为“HTMLElement”类型,或者,如果没有,这样的函数看起来像什么
const h = document.querySelectorAll(someClassString);
h.forEach(individualItem => {
individualItem.addEventListener(c.EVENT, () => doThing(individualItem));
})
2条答案
按热度按时间kxe2p93d1#
要键入querySelectorAll的输出,可以这样做:
fruv7luv2#
既然你使用的是TypeScript,为什么不把它转换成其他类型呢?这里看到它
编辑2023
我不知道是我写这篇文章的时候对Typescript的了解有限,还是这个功能还没有实现,但是正如罗恩琼克指出的,最优雅和可重用的解决方案是