So führen Sie TypeScript über die Befehlszeile aus: Vom Einfachen zum Professionellen
\n\nSie haben Ihr erstes TypeScript-Skript geschrieben. Es sieht alles schön aus: strenge Typisierung, prägnante Syntax, Autovervollständigung in der IDE. Aber wenn Sie das Terminal öffnen und node script.ts eingeben, gibt Node.js einen Fehler aus. Kommt Ihnen das bekannt vor?
TypeScript ist eine Erweiterung von JavaScript, und Node.js kann .ts-Dateien nicht direkt ausführen. In diesem Artikel werden wir alle praktischen Methoden durchgehen, um TypeScript über die Befehlszeile auszuführen. Sie erfahren, wie sich schnelles Ausführen von Production-Builds unterscheidet, wann Sie ts-node und wann tsx verwenden sollten und wie Sie sich in den Tools nicht verlieren.
Wir stützen uns auf eine häufig gestellte Frage auf Stack Overflow (über 500.000 Aufrufe), geben aber nicht nur eine Antwort, sondern einen vollständigen Vergleich der Ansätze. Los geht's!
\n\nWarum versteht Node.js TypeScript nicht?
\n\nBevor wir zu den Tools eilen, lassen Sie uns das Wesentliche verstehen. Wenn Sie schreiben:
\n\nconst greet = (name: string): string => {\n return `Hallo, ${name}!`;\n};\nconsole.log(greet('PythonLib'));\n\nNode.js sieht : string und weiß nicht, was es damit anfangen soll. JavaScript unterstützt keine statische Typisierung als Teil der Syntax. Daher muss TypeScript zuerst transpiliert (umgewandelt) werden in JavaScript, bevor es ausgeführt werden kann.
Es gibt zwei grundlegend unterschiedliche Ansätze:
\n- \n
- Zweistufig: Zuerst Kompilierung
tsc script.ts, dann Ausführungnode script.js. \n - Einstufig: Verwendung von Dienstprogrammen, die beide Aktionen für Sie "on the fly" (JIT-Kompilierung) durchführen. \n
Wir werden beide Optionen betrachten, beginnen aber mit der beliebtesten – der einstufigen.
\n\nMethode 1: ts-node – der Klassiker
\n\nts-node ist eine TypeScript-Execution-Engine für Node.js. Es kompiliert den Code im Speicher und übergibt ihn sofort an Node.js. Dies ist die älteste und bewährteste Methode, TypeScript über die Befehlszeile auszuführen, ohne unnötigen Aufwand.
Installation und Ausführung
\n\nnpm install -g ts-node typescript @types/node\nts-node script.ts\n\nDas war's. Ihre Datei wird ausgeführt, ohne eine zwischengeschaltete JS-Datei zu erstellen. Unter der Haube verwendet ts-node den standardmäßigen TypeScript-Compiler (tsc), tut dies jedoch für den Entwickler transparent.
Beispiel: Arbeiten mit einer API
\n\n// api-demo.ts\nimport axios from 'axios';\n\ninterface Post {\n userId: number;\n id: number;\n title: string;\n}\n\nasync function fetchFirstPost(): Promise<Post> {\n const response = await axios.get<Post>('https://jsonplaceholder.typicode.com/posts/1');\n return response.data;\n}\n\nfetchFirstPost().then(post => console.log(post.title));\n// Ausgabe: sunt aut facere repellat provident occaecati excepturi optio reprehenderit\n\nAusführen: ts-node api-demo.ts. Das Ergebnis erscheint sofort in der Konsole.
Vor- und Nachteile von ts-node
\n\n- \n
- + Einfachheit: ein Befehl statt zwei. \n
- + Unterstützung für
tsconfig.json: Alle Ihre TypeScript-Einstellungen werden berücksichtigt. \n - + REPL: Der Befehl
ts-nodeohne Argumente öffnet eine interaktive TypeScript-Shell. \n - - Geschwindigkeit: Bei jedem Start erfolgt eine Kompilierung, was bei großen Projekten spürbar ist. \n
- - Speicherverbrauch: Bei langer Laufzeit (z. B. im Watch-Modus) kann es RAM verbrauchen. \n
Wann verwenden: Für Skripte, Prototypen, kleine Dienstprogramme. Wenn Sie eine TypeScript-Datei schnell und ohne Konfiguration über die Befehlszeile ausführen müssen, ist ts-node Ihre Wahl.
\n\nMethode 2: tsx – moderner und schneller Nachfolger
\n\ntsx (TypeScript Execute) ist ein neueres Dienstprogramm,