Skip to content

TypeScript ist in Go wiedergeboren

Der Compiler von TypeScript wurde komplett in Go neu geschrieben und liefert eine erstaunliche 10-fache Leistungssteigerung. Dieser architektonische Wandel definiert die Geschwindigkeit der Typüberprüfung und das gesamte Entwicklererlebnis neu.

Theo Brandt
Hero image for: TypeScript ist in Go wiedergeboren

Zusammenfassung / Kernpunkte

  • Der Compiler von TypeScript wurde komplett in Go neu geschrieben und liefert eine erstaunliche 10-fache Leistungssteigerung.
  • Dieser architektonische Wandel definiert die Geschwindigkeit der Typüberprüfung und das gesamte Entwicklererlebnis neu.

Warum TypeScript sich selbst aufgab

TypeScript gab seine JavaScript-Wurzeln für eine harte geschäftliche Realität auf: JavaScript wurde nie für die schwere, CPU-gebundene Arbeit entwickelt, die die moderne Typüberprüfung ausmacht. Diese grundlegende Diskrepanz setzte eine unüberwindbare Leistungsgrenze, die sich direkt auf die Entwicklerproduktivität und die Build-Zeiten in großen Projekten auswirkte. Angesichts dieser inhärenten Einschränkung suchte das Team nach einer leistungsfähigeren Grundlage.

Die Entwickler begannen keine Greenfield-Neuentwicklung. Stattdessen führten sie eine akribische „Portierung, nicht Neuschreibung“-Strategie aus und migrierten die bestehende TypeScript-Logik Zeile für Zeile nach Go. Dieser chirurgische Ansatz gewährleistete absolute Treue und garantierte identische Typüberprüfungssemantik und -verhalten wie der Vorgänger, TypeScript 6.0, wodurch unerwartete Regressionen verhindert wurden. Die Ergebnisse sind unbestreitbar: Eine Typüberprüfung im riesigen Playwright-Repository, das 1400 Dateien und 500.000 Codezeilen umfasst, sank von 6 Sekunden auf rasante 0,87 Sekunden mit TypeScript 7.0 RC.

Go setzte sich als klarer Sieger gegenüber Alternativen wie Rust durch, da es besser zu dieser spezifischen Compiler-Architektur und der bestehenden TypeScript-Codebasis passte. Sein robustes Parallelitätsmodell und die effiziente Speicheranordnung ermöglichten eine deutlich schnellere Portierung der etablierten Logik. Diese entscheidende Fähigkeit ermöglichte Shared Memory Parallelism, wodurch der zuvor Single-Threaded JavaScript-Compiler in ein Multi-Core-Kraftpaket verwandelt wurde, das die Typüberprüfung auf mehrere CPU-Kerne verteilen kann.

Von Minuten zu Millisekunden: Die neue Geschwindigkeit

TypeScript 7 liefert rohe Geschwindigkeit und übertrifft frühere Benchmarks. Das Playwright-Repository, eine robuste Codebasis mit 1400 Dateien, wird jetzt in rasenden 0,87 Sekunden typüberprüft. Das ist ein erstaunlicher Rückgang von den ~6 Sekunden des alten Compilers, eine fast 7-fache Verbesserung, die die Erwartungen der Entwickler grundlegend neu definiert.

Dies ist nicht nur schnelleres JavaScript; es ist ein grundlegender architektonischer Wandel. Der native Code von Go und Shared Memory Parallelism ermöglichen es TypeScript, seine Single-Threaded-Fesseln endlich abzulegen und mehrere CPU-Kerne gleichzeitig zu nutzen. Diese Fähigkeit war innerhalb der inhärenten Einschränkungen von JavaScript, wo CPU-gebundene Aufgaben die Leistung ausbremsten, einfach unmöglich. Selbst im erzwungenen Single-Threaded-Modus schließt die Go-Neuschreibung den Playwright-Benchmark in etwa 2 Sekunden ab – immer noch dreimal schneller als zuvor.

Entwickler haben jetzt eine feinkörnige Kontrolle über diese neu gewonnene Leistung. Das neue Flag `--checkers` bestimmt die Anzahl der parallelen Typüberprüfungs-Worker, standardmäßig vier, aber für Maschinen mit vielen Kernen konfigurierbar. Eine Erhöhung dieses Wertes kann Builds auf Systemen mit reichlich CPU-Ressourcen dramatisch beschleunigen, wenn auch auf Kosten eines höheren Speicherverbrauchs.

Zur weiteren Optimierung komplexer Builds verwaltet das Flag `--builders` parallele Projekt-Referenz-Builds, was für eine effiziente Monorepo-Kompilierung entscheidend ist. Die Kombination von `--checkers` und `--builders` ermöglicht eine beispiellose Parallelität und befähigt Ingenieure, die Leistung zu optimieren und jede Millisekunde aus ihren Build-Pipelines herauszuholen.

Das Upgrade: Reibungsloser Ablauf oder stürmische See?

Nahtlose Upgrades sind selten, aber TypeScript 7 liefert. Die Go-Neuschreibung bewahrte akribisch identische Typüberprüfungslogik und gewährleistete einen reibungslosen Übergang von Version 6. Entwickler, die TypeScript 5 oder älter verwenden, werden auf Breaking Changes stoßen; der vorgeschriebene Pfad erfordert zuerst ein Upgrade auf TypeScript 6, die Behebung etwaiger Probleme und dann den Übergang zu 7.

Diese Voraussetzung stellt die Übernahme der modernen Standardeinstellungen von TypeScript 6 sicher, die in Version 7 von Empfehlungen zu festen Anforderungen übergehen. Bereiten Sie sich vor auf: - `strict: true` als unveränderlichen Standard. - `module: esnext` als neuen Standard. - Die endgültige Entfernung des `es5`-Ziels. - Die Veralterung von Legacy-Modulsystemen: AMD, UMD und SystemJS. TypeScript legt seine Vergangenheit ab.

Tooling-Autoren, merken Sie sich den Termin vor. Während der Kern-Compiler jetzt Go-basiert ist, ist seine stabile programmatische API für TypeScript 7.1 vorgesehen. Bis dahin ermöglicht ein spezielles Kompatibilitätspaket das parallele Ausführen von TypeScript 6 und 7, wodurch Konflikte für Tools vermieden werden, die in die Compiler-Interna eintauchen. Für die vollständige technische Aufschlüsselung lesen Sie die Announcing TypeScript 7.0 RC - TypeScript.

Ihr Entwickler-Workflow wurde gerade aufgewertet

Die Neufassung in Go geht nicht nur um schnellere CLI-Befehle; sie verändert grundlegend Ihr tägliches Coding-Erlebnis. Entwickler werden den Unterschied sofort in ihren IDEs spüren, insbesondere in VS Code. Die Ladezeiten von Editor-Projekten sind um etwa 8x gesunken, wodurch große Codebasen sofort besser handhabbar werden.

Enjoying this? Get one like it in your inbox each morning.

one email a day · unsubscribe in two clicks · no third-party tracking

IntelliSense liefert jetzt Vervollständigungen und Typ-Feedback mit beispielloser Geschwindigkeit und eliminiert die frustrierenden Mikroverzögerungen, die zuvor den Arbeitsfluss unterbrachen. Das bedeutet weniger Wartezeit, mehr Coding und einen deutlich reibungsloseren Workflow, der sich direkt auf die Produktivität der Entwickler auswirkt.

Als Nächstes wurde der `--watch`-Modus komplett überarbeitet. Frühere Iterationen hatten aufgrund des Mangels an nativen Datei-Watching-APIs in Go mit Stabilität und plattformübergreifender Konsistenz zu kämpfen. Das Team entwickelte eine Lösung, indem es einen robusten, leistungsstarken Datei-Watcher von C++ portierte – dieselbe Technologie, die den Parcel bundler antreibt.

Dieser ausgeklügelte neue Watcher gewährleistet eine felsenfeste Zuverlässigkeit über alle Betriebssysteme hinweg. Entwickler profitieren jetzt von nahezu sofortigem Feedback bei Dateiänderungen, was iterative Entwicklungszyklen wirklich flüssig und reaktionsschnell macht – ein wesentlicher Bestandteil für jedes moderne Dev Setup.

Diese Neufassung in Go ist mehr als nur eine Leistungssteigerung; sie ist eine strategische Investition, die eine neue, hochleistungsfähige Grundlage schafft. Mit der neu gewonnenen Geschwindigkeit und Effizienz des Compilers ist TypeScript nun bereit, eine neue Generation von Tooling zu ermöglichen. Erwarten Sie Fortschritte wie sofortiges Typ-Feedback und radikal schnellere KI-gestützte Code-Assistenz.

Die Zukunft der TypeScript-Entwicklung hat sich gerade verbessert und verspricht eine reaktive, intelligente Coding-Umgebung, die mit ihrem JavaScript-gebundenen Vorgänger einfach unmöglich war. Die Vorteile sind klar: Ein schnellerer Compiler bedeutet ehrgeizigere Funktionen und eine überzeugendere Entwicklererfahrung.

Häufig gestellte Fragen

Warum wurde der TypeScript-Compiler in Go neu geschrieben?

Das TypeScript-Team hat den Compiler in Go neu geschrieben, um die Leistungseinschränkungen von JavaScript bei CPU-intensiven Aufgaben wie der Typüberprüfung zu überwinden. Die native Leistung und das Parallelitätsmodell von Go ermöglichten massive Geschwindigkeitsverbesserungen und Shared-Memory-Parallelität.

Wie viel schneller ist TypeScript 7?

TypeScript 7 ist etwa 10-mal schneller als frühere Versionen. In Benchmarks auf großen Codebasen wie Playwright sanken die Typüberprüfungszeiten von etwa 6 Sekunden auf unter 0,9 Sekunden.

Gibt es größere Breaking Changes in TypeScript 7?

Wenn Sie von TypeScript 6 upgraden, gibt es praktisch keine Breaking Changes, da die Neufassung eine direkte Portierung der Logik war. Allerdings sind die in v6 eingeführten Standardeinstellungen (wie 'strict: true') jetzt feste Anforderungen, und ein Upgrade von v5 erfordert, dass diese Änderungen zuerst behoben werden.

Wie verbessert TypeScript 7 die Leistung?

Der primäre Leistungsgewinn resultiert aus dem Wechsel zu einer kompilierten Sprache (Go). Zusätzlich nutzt der neue Compiler Shared-Memory-Parallelismus, wodurch er mehrere CPU-Kerne nutzen kann, um Typen gleichzeitig zu prüfen, eine Fähigkeit, die der Single-Threaded JavaScript-Version fehlte.

Found this useful? Share it.

One short daily email of tools worth shipping. No drip funnel.

one email a day · unsubscribe in two clicks · no third-party tracking

🚀Mehr entdecken

Bleiben Sie der KI voraus

Entdecken Sie die besten KI-Tools, Agenten und MCP-Server, kuratiert von Stork.AI.

P.S. Etwas Brauchbares gebaut? Bei Stork listen