2016-04-08 9 views
3

私はDOMクエリの結果を格納するtypescriptです変数を持っていますか?私はhtmlelementsを含む配列を期待していますか?typescriptのhtml要素の配列型は何ですか?</p> <pre><code>let games = document.getElementsByTagname("game"); </code></pre> <p>しかし、結果配列の正しいタイプのものです:

// not working 
let games : Array<HTMLElement> = document.getElementsByTagName("game"); 
// also not working 
let games : NodeList<HTMLElement> = document.getElementsByTagName("game"); 
+0

タイプとして配列 /配列を使用できます。 – Ajay

+0

Array を使用しているときにこのエラーが発生します。 'NodeListOf 'は 'Element []'型に割り当てられません。プロパティ 'push'がタイプ 'NodeListOf 'にありません。 – Kokodoko

+0

の代わりにNodeListOf を使用してください。おそらくあなたのエラーを解決するでしょう。 – Ajay

答えて

3

次の例のように、NodeListOf<T>を使用する必要があります。

let games : NodeListOf<Element> = document.getElementsByTagName("game"); 

あなたはHTMLElement[]にそれを強制するが、これは誤解を招くようなタイプの情報を提供し、あなたのツールはうそになるだろうタイプのアサーションを使用することができます。

+2

ああ..私は "NodeListOf"が実際にはタイプであることに気づいていませんでした( "Of"はどういう意味ですか?)。また、なぜDOM要素のために非常に多くの異なる型ですか? (NodeList、NodeListOf、Element、およびHTMLElement)を返します。私のDOMからdivをフェッチするだけで、あるタイプから別のタイプへのキャストを維持するのは面倒です。 – Kokodoko

関連する問題

 関連する問題