Typescript „Missing type definitions“ einfach beheben

Je nach dem wie die tslintconfig.json eingestellt ist, müssen/sollen auch die eingebunden Module von Drittanbietern „Typensicher deklariert werden“. Sonst meldet die Entwicklungsumgebung „Missing type definitions“.

ReactJS Typendefinition nicht gefunden
ReactJS Typendefinition nicht gefunden

„declare-react-module“ – das Mittel gegen „Missing type definitions for Typescript“

Dazu habe ich ein sehr hilfreiches Modul gefunden, welches sich ganz einfach über npm install` installieren lässt. 
Link zum Modul: npmjs.com Modul-Seite zur Installation

Nach der Installation könnt ihr über die Kommandozeile dann declare-react-module PATH/TO/MODULE`aufrufen – und die fehlende Definition wird erstellt.

In dem Beitrag über Probleme und Hilfestellung bei der Verwendung von Plugins habe ich ja schon auf weitere Probleme bei der Verwendung von Modulen aus „dritter Hand“ hingewiesen. Dies ist sicherlich ein Thema das nicht zum letzten Mal auf dem Tisch liegen wird. 

Ein paar kleine Tipps zur package.json

Da es auch mal vorkommt, das man etwas herum probiert und dann vielleicht sein node_modules Verzeichnis löscht (um dann Sauber neu zu installieren) – oder Kollegen/Mitarbeiter arbeiten ebenfalls an dem Projekt, dann wäre es sinnvoll die Befehle in der package.json unter „scripts“ vorzuhalten, so daß dort die fehlenden Typendefnitionen erstellt werden.

ReactJS declare-react-module
ReactJS declare-react-module

Wie im Beispiel zu sehen kann man nun in der Kommandozeile mit npm run declare-the-definition`die Definition anlegen. Verwendet an eine IDE wie PHPStorm beispielsweise, muss man gegebenenfalls die *.tsx Dateien alle nochmal schließen und neu öffnen, bevor TSLint da erkennt, das sich etwas in den Definitionen getan hat.

Edit: Alternativ kann man aber auch wie auf der npmjs.com Seite beschrieben die package.json wie folgt erweitern: prepublish: declare-react-module„.
Damit wird eine index.d.ts Datei im Projekt-Root-Verzeichnis angelegt, die ebenfalls für die Typendeklaration sorgen soll.

Kleiner Tipp noch am Rande: In einem package.json-scripts Befehl lassen sich getrennt mit der Pipe ( | ) auch mehrere Befehle nacheinander ausführen. Auch bei anderen Befehlen, die nichts mit der Deklaration von Typen zu tun haben.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.