Fehlermeldungen lesen
Alle Fehlermeldungen von TypeScript sehen ähnlich aus, und wenn du sie lesen kannst, verraten sie dir viel. Dieses Programm hat drei Fehler:
const held = { name: "Kira", leben: 50 };
let traenke = 2;
console.log("Leben:", held.lebn);
console.log("Tränke:", trenake);
console.log("Pfeile:", pfeile);TypeScript meldet alle drei auf einmal, je einen pro Zeile:
main.ts(4,28): error TS2551: Property 'lebn' does not exist on type '{ name: string; leben: number; }'. Did you mean 'leben'?
main.ts(5,24): error TS2552: Cannot find name 'trenake'. Did you mean 'traenke'?
main.ts(6,24): error TS2304: Cannot find name 'pfeile'.Lies jede Zeile von links:
main.tsist die Datei mit dem Fehler, die im Editor.(4,28)ist die Stelle: Zeile 4, Spalte 28. Die Zeilennummern siehst du links im Editor. Die Spalte sagt, das wievielte Zeichen der Zeile gemeint ist, ab 1 gezählt, Leerzeichen eingeschlossen. TypeScript zeigt auf den Anfang dessen, was falsch ist, hier den ersten Buchstaben vonlebn.error TS2551sagt, dass es ein Fehler ist, undTS2551ist sein Code. Jede Art von Fehler hat ihre eigene Nummer. Wenn dir eine Meldung unklar ist, suche im Internet nach ihrem Code, zum Beispiel „TS2551“, und du findest Erklärungen und Beispiele.- Nach dem Doppelpunkt kommt eine Beschreibung auf Englisch.
Property 'lebn' does not exist on type '{ name: string; leben: number; }'bedeutet, dass das Objekt keine Eigenschaftlebnhat. Der Teil in Anführungszeichen ist der Typ des Objekts: ein Objekt mit einer Eigenschaftname, die ein Text (string) ist, und einer Eigenschaftleben, die eine Zahl ist. TypeScript hat ihn aus dem Objekt in Zeile 1 abgeleitet.
Wenn ein falscher Name einem vorhandenen ähnelt, fügt TypeScript einen Vorschlag hinzu, Did you mean 'leben'? (Meintest du leben?), und meistens ist das die richtige Korrektur. Vorschläge gibt es bei Eigenschaften (TS2551) und auch bei Variablen: Cannot find name 'trenake' (TS2552) bedeutet, dass TypeScript keine Variable trenake kennt, aber traenke. Wenn kein Name ähnlich ist, bekommst du nur Cannot find name 'pfeile' (TS2304): Das Programm hat keine Variable pfeile. Vielleicht hast du vergessen, sie anzulegen, oder du hast sie anders genannt.
TypeScript prüft das ganze Programm und meldet jeden Typfehler, den es findet. Beginne mit dem ersten: Behebe ihn und führe das Programm erneut aus. Ein Fehler kann nämlich mehrere Meldungen auslösen. Wenn du dich im Namen einer Variablen genau dort vertippst, wo du sie anlegst, meldet jede Zeile, die sie verwendet, einen Fehler, und eine einzige Korrektur lässt alle verschwinden.
Und umgekehrt: Nach einer Korrektur können neue Fehler auftauchen. Vor den Typen prüft TypeScript nämlich, ob das Programm richtig geschrieben ist, mit allen Klammern und Anführungszeichen an ihrem Platz. Ist da etwas falsch, meldet TypeScript nur das und prüft die Typen erst, wenn du es behoben hast:
const held = { name: "Kira", leben: 50 };
console.log("Leben:", held.leben;main.ts(2,33): error TS1005: ')' expected.')' expected bedeutet, dass TypeScript dort, beim Semikolon, eine ) erwartet hat, weil die Klammer von console.log( nicht geschlossen wurde.
So schreibst du es:
Anweisungen
- 1
Das Programm im Editor begrüßt Kira in einem Gasthaus, aber es hat drei Fehler. Führe es aus: TypeScript meldet nur einen davon, einen Fehler in der Schreibweise des Programms. Behebe ihn und führe das Programm erneut aus. Jetzt zeigt TypeScript die anderen beiden. Behebe auch sie, sodass das Programm ausgibt:
Willkommen im Gasthaus Zum Goldenen Kelch Dein Wirt: Bruno Kira bestellt eine Suppe. Gold übrig: 105