3

Also, ich habe gerade mein Angular CLI-Projekt auf die neueste Version aktualisiert.Wo kann ich meinen Angular 2 CLI TypeScript-Fehler finden?

Angular CLI ist 1.0.0 jetzt und @ Winkel/common 4.0.0

Nachdem ist das zuvor Arbeits Projekt kompilieren (mit ng build) ich Dutzende von Fehlern empfangen, wie folgt aus:

C:/tools/myproject/src/$$_gendir/app/modules/wp-components/wp-components.component.ngfactory.ts (1207,11): Type 'number | true' is not assignable to type 'boolean'. 
     Type 'number' is not assignable to type 'boolean'. 

Ich könnte in der Lage sein, diesen typbezogenen Fehler zu beheben, aber ich weiß nicht, wo ich zu finden bin ...

Ich denke, C:/tools/myproject/src/app/modules/wp-components/wp-components.component.ts ist das Original von C:/tools/myproject/src/$$_gendir/app/modules/wp-components/wp-components.component.ngfactory.ts (die in der Fehlermeldung aufgeführt ist).

Meine Frage ist:

Diese Datei 225 Zeilen hat. Was ist diese Koordinate in der Fehlermeldung: (1207,11)

Wenn Sie eine Lösung für dieses Problem haben, ist es auch willkommen. ;-)

Danke Jungs im Voraus!

+0

können Sie bitte Ihren Code für diese 'wp-Komponenten' Dies scheint ein Problem im Zusammenhang mit Typoskript-Upgrade nicht angular. –

Antwort

3

Hatte das gleiche Problem, wenn ich Angular CLI aktualisiert.

Das Problem:

Die Quelle für es ist logisch, aber ich glaube einfach nicht darüber.

In meinem Fall hatte ich einen typisierten benutzerdefinierten Typ Parameter oder Variable als Zeichenfolge oder Zahl, aber ich habe es in einer If-Bedingung ohne einen Operator verwendet, um zu überprüfen, ob es leer war oder nicht.

Zum Beispiel:

export class ExampleType { 
    id: number, 
    title: string 
} 

if(!ExampleType.id) { 
    // this will produce an error because ExampleType.id 
    // is used as a boolean in this case 
} 

während es so verwendet wird von dem Fehler loszuwerden:

if(ExampleType.id < 1) { 
    // this works 
} 

Verständnis der Debug-Nachricht:

Soweit ich kann sehen, dass die Zahlen keinen Sinn ergeben, aber die Dateinamen scheinen das erste Vorkommen von on zu sein e der oben genannten Fälle. Wenn Sie den Fehler erhalten, suchen Sie einfach in dieser Datei nach if/switch-Bedingungen, die Ihren Parameter wie oben verwenden könnten, und ändern Sie sie, um den richtigen Vergleichsoperator zu verwenden und dann den nächsten Dateinamen zu sehen, der nach dem erneuten Ausführen angezeigt wird. Hinweis: Sie müssen die Datei component.ts und auch die Datei component.html überprüfen, da sie sich auch auf die Datei ngIfs in der Vorlagendatei auswirkt.

Tipps auf die fehlerhaften Attribute zu finden:

Die Debug-Nachricht gibt keine Informationen, die Quelle der Fehler zuzuschreiben. Meine Lösung bestand darin, einfach jedes Attribut in meinem benutzerdefinierten Typ in "any" zu ändern und es dann einzeln zurück zu ändern, um zu sehen, wo der Fehler wieder auftrat. (vielleicht hilft das)