So führen Sie TypeScript über die Befehlszeile aus: 3 funktionierende Methoden

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

So führen Sie TypeScript über die Befehlszeile aus: Vom Einfachen zum Professionellen

\n\n

Sie 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?

\n\n

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.

\n\n

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\n

Warum versteht Node.js TypeScript nicht?

\n\n

Bevor wir zu den Tools eilen, lassen Sie uns das Wesentliche verstehen. Wenn Sie schreiben:

\n\n
const greet = (name: string): string => {\n  return `Hallo, ${name}!`;\n};\nconsole.log(greet('PythonLib'));
\n\n

Node.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.

\n\n

Es gibt zwei grundlegend unterschiedliche Ansätze:

\n
    \n
  • Zweistufig: Zuerst Kompilierung tsc script.ts, dann Ausführung node script.js.
  • \n
  • Einstufig: Verwendung von Dienstprogrammen, die beide Aktionen für Sie "on the fly" (JIT-Kompilierung) durchführen.
  • \n
\n\n

Wir werden beide Optionen betrachten, beginnen aber mit der beliebtesten – der einstufigen.

\n\n

Methode 1: ts-node – der Klassiker

\n\n

ts-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.

\n\n

Installation und Ausführung

\n\n
npm install -g ts-node typescript @types/node\nts-node script.ts
\n\n

Das 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.

\n\n

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\n

Ausführen: ts-node api-demo.ts. Das Ergebnis erscheint sofort in der Konsole.

\n\n

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-node ohne 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
\n\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\n

Methode 2: tsx – moderner und schneller Nachfolger

\n\n

tsx (TypeScript Execute) ist ein neueres Dienstprogramm,

Blogs

Buchempfehlungen