Start·Fehlermeldungen

tsc · Build und Typen

Die Meldung

error TS2339: Property 'user' does not exist on type 'Request'.

Was es bedeutet

Dieser Typ deklariert diese Eigenschaft nicht. Ursachen: ein Feld, das der Bibliothekstyp nicht hat (user an Express' Request zu hängen ist der Klassiker), ein Tippfehler, oder das Lesen einer Eigenschaft, die nur ein Mitglied einer nicht eingegrenzten Union besitzt. Den Typ an die echte Form anzupassen ist die Antwort; bei einer Union öffnet Eingrenzen mit 'x' in y oder einem Diskriminanzfeld den Zugriff innerhalb des Zweigs. Mit as any zum Schweigen zu bringen knebelt nur den Compiler: an dieser Stelle geht dann auch ein falsch geschriebener Eigenschaftsname durch.

Die Lösung

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

Ausgegeben von
tsc
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 TS2339: Property 'user' does not exist on type 'Request'.“?

Dieser Typ deklariert diese Eigenschaft nicht. Ursachen: ein Feld, das der Bibliothekstyp nicht hat (user an Express' Request zu hängen ist der Klassiker), ein Tippfehler, oder das Lesen einer Eigenschaft, die nur ein Mitglied einer nicht eingegrenzten Union besitzt. Den Typ an die echte Form anzupassen ist die Antwort; bei einer Union öffnet Eingrenzen mit 'x' in y oder einem Diskriminanzfeld den Zugriff innerhalb des Zweigs. Mit as any zum Schweigen zu bringen knebelt nur den Compiler: an dieser Stelle geht dann auch ein falsch geschriebener Eigenschaftsname durch.

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. Es gehört zu Build und Typen, und die Meldung hat 10 Wörter.

Verwandte Fehler