2016-04-08 13 views
3

Ich habe eine Typoskript Variable, die das Ergebnis einer DOM-Abfrage speichert:Was ist der Array-Typ für HTML-Elemente in Typoskript?

let games = document.getElementsByTagname("game"); 

Aber was ist der richtige Typ des Ergebnisses Array? Ich würde ein Array erwarten, das htmlelements enthält?

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

können Sie Array /Array als Typ verwenden, sehen, ob jemand funktioniert oder nicht? – Ajay

+0

Ich bekomme diesen Fehler bei der Verwendung von Array : 'NodeListOf ' ist nicht zu Typ 'Element []' zuweisbar. Die Eigenschaft 'push' fehlt im Typ 'NodeListOf '. – Kokodoko

+0

Verwenden Sie NodeListOf anstelle von Array . Es wird wahrscheinlich Ihren Fehler lösen. – Ajay

Antwort

3

Sie müssen NodeListOf<T> verwenden, zum Beispiel:

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

Sie Typ Behauptungen in ein HTMLElement[] zu zwingen, verwenden könnte, aber dies wäre irreführend Typinformationen geben und Ihre Werkzeuge machen liegen.

+2

Ah .. Ich wusste nicht, "NodeListOf" war eigentlich ein Typ ... (Was bedeutet das "Of"?). Warum auch so viele verschiedene Typen für DOM-Elemente? (NodeList, NodeListOf, Element und HTMLElement). Es scheint sehr mühsam, von einem Typ zum anderen zu wechseln, nur um ein Div von meinem DOM zu holen. – Kokodoko

Verwandte Themen