Start·Fehlermeldungen

tsc 4.9+ · Build und Typen

Die Meldung

error TS18048: 'user' is possibly 'undefined'.

Was es bedeutet

Der Wert kann undefined sein, und Sie haben diese Möglichkeit nicht behandelt; hier fängt tsc ein künftiges Cannot read properties of undefined für Sie ab. Es tritt bei optionalen Feldern, beim Ergebnis eines Array-find() und bei möglicherweise nicht gesetzten Umgebungsvariablen auf. Die Lösung ist zu entscheiden, was bei Fehlen geschieht: früh abbrechen mit if (!user) return null oder mit user?.name abkürzen. Als user!.name zum Schweigen gebracht, erklären Sie eine Garantie — und ist die Garantie falsch, kommt es als Laufzeitausnahme zurück, ohne jedes Netz, das eine Prüfung hinterlassen hätte.

Die Lösung

Hier hilft kein Einzeiler. Die Erklärung sagt, worauf zu schauen ist.

Ausgegeben von
tsc 4.9+
Build und Typen
10

Build-Fehler sind ein Werkzeug, das verweigert, bevor irgendetwas läuft — sie zerbrechen im Moment ihres Auftretens nichts, stellen aber zwei Fragen: reparieren Sie Typ oder Pfad passend zur echten Form, oder schieben Sie diese eine Zeile mit einem as any oder einem Unterdrückungskommentar durch? Und genau hier zeigen sich erstmals die Dinge, die nur auf dem eigenen Rechner stimmen: Groß-/Kleinschreibung, Endungen und Umgebungsvariablen.

Eine Fehlermeldung lesen

  • Von der ersten Zeile abwärts lesen. Weiter unten geht es um das Innere des Werkzeugs; die Ursache steht meist oben.
  • Gibt es Datei und Zeilennummer, dort anfangen — nicht der oberste Stack-Frame, sondern die oberste Zeile, die eine eigene Datei nennt.
  • Die Meldung wörtlich suchen, vorher aber eigene Pfade und Variablennamen entfernen; genau die verhindern den Treffer.
  • Dieselbe Lage wird je Werkzeugversion anders formuliert. Passen die Treffer nicht, die Versionsnummer mit in die Suche.
  • Vor dem Einfügen einer Lösung prüfen, was sie verwirft. Manches davon lässt sich nicht zurückholen.

Häufige Fragen

Q. Was bedeutet „error TS18048: 'user' is possibly 'undefined'.“?

Der Wert kann undefined sein, und Sie haben diese Möglichkeit nicht behandelt; hier fängt tsc ein künftiges Cannot read properties of undefined für Sie ab. Es tritt bei optionalen Feldern, beim Ergebnis eines Array-find() und bei möglicherweise nicht gesetzten Umgebungsvariablen auf. Die Lösung ist zu entscheiden, was bei Fehlen geschieht: früh abbrechen mit if (!user) return null oder mit user?.name abkürzen. Als user!.name zum Schweigen gebracht, erklären Sie eine Garantie — und ist die Garantie falsch, kommt es als Laufzeitausnahme zurück, ohne jedes Netz, das eine Prüfung hinterlassen hätte.

Q. Wie behebe ich das?

Es gibt keinen Einzeiler. Die Erklärung oben sagt, worauf zu schauen ist.

Q. Welches Werkzeug gibt das aus?

tsc 4.9+. Es gehört zu Build und Typen, und die Meldung hat 6 Wörter.

Verwandte Fehler