我是一个打字新手,我正在尝试迭代document.getElementsByClassName()
获得的HTMLCollection。我的代码是:
let tag_list = document.getElementsByClassName("...") as HTMLCollectionOf<HTMLLinkElement>;
for (const tag of tag_list) {
//do sth with tag.href
}
字符串
但事实证明,“TS2495:Type 'HTMLCollectionOf' is not an array type or a string type.”那么,我能做的最好的方法是什么来防止这个错误呢?
3条答案
按热度按时间u5i3ibmn1#
HTMLCollectionOf<HTMLLinkElement>
不是数组,因此不能迭代它。所以,你需要把它变成一个数组字符串
希望这对你有帮助
mdfafbf12#
如this S.O. answer所示,它依赖于编译。
tsconfig.json
:字符串
以下代码将编译并运行:
型
oxosxuxt3#
你可以通过先将Typescript转换为
any
,然后再转换为你想要的类型,使Typescript认为任何东西都是任何类型,就像这样:字符串
这种技术虽然丑陋,但很有效,它可以让您对Typescript“撒谎”。由于JavaScript会很乐意地迭代HTMLElement的子元素,因此像这样对Typescript撒谎可以让JavaScript做它自己的事情。