tsx für TypeScript: Vollständige Anleitung mit Beispielen
1. Was ist tsx und warum braucht man es?
tsx ist ein moderner, leistungsstarker Runner für TypeScript und ESM (ECMAScript Modules), der es ermöglicht, .ts-, .tsx- und .mts-Dateien direkt auszuführen – ohne vorherige Kompilierung in JavaScript. Basierend auf esbuild (einem extrem schnellen Bundler in Go) sorgt tsx für eine nahezu sofortige Ausführung von TypeScript-Code. Das macht es zum idealen Werkzeug für Entwicklung, Prototyping, Skripterstellung und Tests.
Warum tsx? Traditionell erfordert das Ausführen von TypeScript-Dateien einen zweistufigen Prozess: Zuerst muss der Code mit tsc (TypeScript Compiler) kompiliert werden, danach wird das resultierende JavaScript mit Node.js ausgeführt. Das verlangsamt die Entwicklungsiterationen. tsx löst dieses Problem, indem es Kompilierung und Ausführung in einem Schritt vereint. Es verarbeitet automatisch TypeScript-Syntax, ESM-Module, JSX und unterstützt sogar die node_modules-Auflösung. Im Grunde ist tsx ein Ersatz für ts-node – aber deutlich schneller und moderner.
Die wichtigsten Vorteile von tsx gegenüber Alternativen: Geschwindigkeit (es nutzt esbuild, das 10-100 Mal schneller ist als tsc), native ESM-Unterstützung (ohne tsconfig.json-Anpassung für Module), automatische Erkennung der TypeScript-Konfiguration und integrierter --watch-Modus. tsx eignet sich perfekt für: CLI-Tools in TypeScript, Testausführung (Jest, Vitest), Automatisierungsskripte, schnelles Prototyping und das Erlernen von TypeScript.
2. Installation
tsx wird über npm (Node Package Manager) verteilt und kann global oder lokal in einem Projekt installiert werden. Eine lokale Installation wird empfohlen, um Projektabhängigkeiten zu isolieren.
Lokale Installation (empfohlen):
npm install --save-dev tsx
Oder mit yarn:
yarn add --dev tsx
Oder mit pnpm:
pnpm add --save-dev tsx
Globale Installation (für schnellen Zugriff von überall):
npm install -g tsx
Installation überprüfen:
npx tsx --version
Nach der Installation können Sie TypeScript-Dateien mit npx tsx dateiname.ts (bei lokaler Installation) oder tsx dateiname.ts (bei globaler Installation) ausführen.
Wichtig: tsx benötigt Node.js Version 18 oder höher. Für die Arbeit mit ESM stellen Sie sicher, dass Ihre package.json das Feld "type": "module" enthält, oder verwenden Sie die Dateierweiterung .mts.
3. Schnellstart – Minimales Arbeitsbeispiel
Erstellen Sie eine Datei hallo.ts mit folgendem Inhalt:
// hallo.ts
const greet = (name: string): string => {
return `Hallo, ${name}! Willkommen in der Welt von tsx!`;
};
const userName: string = "PythonLib";
console.log(greet(userName));
// Moderne JS-Funktionen nutzen
const numbers: number[] = [1, 2, 3, 4, 5];
const doubled = numbers.map((n) => n * 2);
console.log("Verdoppelte Zahlen:", doubled);
// Asynchroner Code
const fetchData = async (): Promise => {
const data = await Promise.resolve({ id: 1, name: "Beispiel" });
console.log("Asynchrone Daten:", data);
};
fetchData();
Führen Sie die Datei mit folgendem Befehl aus:
npx tsx hallo.ts
Erwartete Ausgabe:
Hallo, PythonLib! Willkommen in der Welt von tsx!
Verdoppelte Zahlen: [ 2, 4, 6, 8, 10 ]
Asynchrone Daten: { id: 1, name: 'Beispiel' }
Dieses Beispiel zeigt die grundlegende Funktionsweise von tsx: Es kompiliert TypeScript automatisch in JavaScript, unterstützt