1. ホーム
  2. タイプスクリプト

[解決済み】TypeScriptでHTMLElementの型をアサートする方法は?

2022-04-08 14:51:01

質問

こんなことをしようとしています。

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

script 要素の 'type' メンバを正しい型にキャストしないとアクセスできないのですが、その方法がわかりません。ドキュメントやサンプルを探したのですが、何も見つかりませんでした。

どのように解決するのですか?

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];