Start·Fehlermeldungen

tsc · Build und Typen

Die Meldung

error TS7006: Parameter 'req' implicitly has an 'any' type.

Was es bedeutet

Der Parameter trägt keinen Typ, und tsc hatte nichts, woraus es schließen könnte — also wurde er implizit any, was noImplicitAny als Fehler wertet. Es tritt in aus JavaScript übernommenen Dateien auf und wenn ein Callback in eine eigene Variable gezogen wird; ein inline geschriebenes items.map(x => ...) hat dagegen Kontext, tsc leitet ab, und dies erscheint nie. Den Typ dort hinzuschreiben ist die Lösung. Sie können auch ausdrücklich any schreiben, doch das schaltet die Prüfung für diesen Parameter vollständig ab — wissen Sie nicht, was es ist, ist unknown ehrlicher und erzwingt eine Eingrenzung vor der Nutzung.

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 TS7006: Parameter 'req' implicitly has an 'any' type.“?

Der Parameter trägt keinen Typ, und tsc hatte nichts, woraus es schließen könnte — also wurde er implizit any, was noImplicitAny als Fehler wertet. Es tritt in aus JavaScript übernommenen Dateien auf und wenn ein Callback in eine eigene Variable gezogen wird; ein inline geschriebenes items.map(x => ...) hat dagegen Kontext, tsc leitet ab, und dies erscheint nie. Den Typ dort hinzuschreiben ist die Lösung. Sie können auch ausdrücklich any schreiben, doch das schaltet die Prüfung für diesen Parameter vollständig ab — wissen Sie nicht, was es ist, ist unknown ehrlicher und erzwingt eine Eingrenzung vor der Nutzung.

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 9 Wörter.

Verwandte Fehler