2016-12-11 5 views
0

Mit Typoskript 2.0.6.0Typoskript Übersetzungsfehler - „Wert vom Typ ... ist nach Art nicht Wende ...“

Ich habe eine Schnittstelle definiert:

interface indexesWorkData { 
    pointInTime: number; 
    numberOfIndexesWorking: number; 
} 

Dies ist meine Klasse:

class work {   
    indexesWork: Array<indexesWorkData> = []; 

    pushRange(startTime: number, endTime: number) { 

     let indexStart = this.indexesWork.findIndex(x => x.pointInTime >= someNumber); 
     if (this.indexesWork[indexStart].pointInTime === anotherNumber) { 
      // Do stuff 
     } 
    } 
} 

ich Kompilierungsfehler: „Wert vom Typ indexesWorkData [] ist nicht Wende nach Typ indexesWorkData“ für den Versuchzugreifen]

Aber zur Laufzeit funktioniert es und indexStart hat den richtigen Wert.

Warum ist das?

+1

Sie haben den Code in keine Methode eingefügt. – Shai

+0

Ich bekomme keine Fehler mit Ihrem Code (außer 'someNumber' und' anotherNumber' ist undefined, was eine einfache Lösung war). Können Sie vielleicht eine neuere Version von Typoskript ausprobieren? – drewwyatt

Antwort

0

Können Sie versuchen, die Kompilierung explizit über den Typ indexStart zu informieren?

let indexStart: number = <number>this.indexesWork.findIndex(x => x.pointInTime >= someNumber); 
+0

Dies funktioniert auch nicht. Der Fehler, den Sie jetzt bekommen, ist auf der Methode findIndex(), dass es 'indexesWorkData' nicht in eine 'Nummer' umwandeln kann. – Danielle

+0

Ich habe meiner Antwort eine Typassertion hinzugefügt. Könnten Sie es mit der Behauptung versuchen? – chkal

+0

@Danielle: Meine Vermutung ist, dass findIndex() gibt alle und daher der abgeleitete Typ indexStart ist auch jede, die nicht als Index ändern wird auf. – chkal

Verwandte Themen