小编典典

如何在 TypeScript 中断言 HTMLElement 的类型?

all

我正在尝试这样做:

var script:HTMLScriptElement = document.getElementsByName("script")[0];
alert(script.type);

但它给了我一个错误:

Cannot convert 'Node' to 'HTMLScriptElement': Type 'Node' is missing property 'defer' from type 'HTMLScriptElement'
(elementName: string) => NodeList

除非我将它转换为正确的类型,否则我无法访问脚本元素的“类型”成员,但我不知道该怎么做。我搜索了文档和示例,但找不到任何东西。


阅读 60

收藏
2022-06-11

共1个答案

小编典典

TypeScript 使用 ‘<>’ 来包围强制转换,所以上面变成:

var script = <HTMLScriptElement>document.getElementsByName("script")[0];

但是,不幸的是,您不能这样做:

var script = (<HTMLScriptElement[]>document.getElementsByName(id))[0];

你得到错误

Cannot convert 'NodeList' to 'HTMLScriptElement[]'

但你可以这样做:

(<HTMLScriptElement[]><any>document.getElementsByName(id))[0];
2022-06-11