Was ist TypeScript? Unterschiede zu JavaScript
Wir erklären, wie das Typsystem Fehler früh abfängt, worin sich TypeScript und JavaScript unterscheiden und was der Umstieg eines bestehenden Projekts auf TypeScript kostet.

TypeScript ist eine von Microsoft entwickelte Open-Source-Sprache, die JavaScript um ein statisches Typsystem erweitert. Der geschriebene Code wird zu gewöhnlichem JavaScript kompiliert und läuft überall. Da der Typ von Variablen, Funktionen und Daten vorab angegeben wird, werden viele Fehler schon im Editor und beim Kompilieren gefunden, bevor der Code läuft; die Wartung großer Projekte wird einfacher.
Was ist TypeScript?
Die kürzeste Antwort auf die Frage Was ist TypeScript? lautet: JavaScript mit Typinformationen. Technisch ist TypeScript eine Obermenge von JavaScript; jeder gültige JavaScript-Code ist zugleich gültiger TypeScript-Code. Hinzu kommen lediglich Typdefinitionen und ein Compiler, der sie prüft.
Browser und Node.js sind nicht dafür gemacht, TypeScript direkt auszuführen. Deshalb durchläuft der Code zunächst den Compiler, die Typinformationen werden entfernt, und es entsteht reines JavaScript. Der Nutzen von TypeScript liegt also in der Entwicklungsphase; der Code, der zum Nutzer geht, ist weiterhin JavaScript.
Die Sprache wurde 2012 erstmals vorgestellt und ist mit der Zeit zu einem der Standardwerkzeuge der Webentwicklung geworden. Heute sind viele beliebte Bibliotheken direkt in TypeScript geschrieben, und die meisten Werkzeuge zum Anlegen neuer Projekte bieten TypeScript bei der Einrichtung als erste Option an. Diese Verbreitung bedeutet, dass das Gelernte sich leicht auf andere Projekte übertragen lässt.
Wer die Grundlagen der Sprache nicht kennt, für den kann der direkte Einstieg in TypeScript schwierig sein. Wer zuerst die Konzepte im Beitrag Was ist JavaScript? festigt, versteht leichter, welches Problem das Typsystem löst.
Wie findet Typsicherheit Fehler?
JavaScript ist dynamisch typisiert: Sie können einer Variablen erst eine Zahl und dann einen Text zuweisen, und die Sprache protestiert nicht. In kleinen Skripten ist diese Flexibilität bequem; in einem Projekt mit Hunderten Dateien bemerkt man aber meist erst, dass sich die von einer Funktion erwarteten Daten geändert haben, wenn live ein Fehler auftritt.
Typsicherheit bedeutet, dass die Form jedes Datenwerts vorab definiert wird und Verwendungen, die dieser Definition widersprechen, beim Kompilieren abgelehnt werden. Im folgenden Beispiel werden ein falscher Feldname oder ein falscher Typ im Editor mit einer roten Linie markiert, bevor der Code läuft.
interface Siparis {
id: number;
musteri: string;
tutar: number;
odendi: boolean;
}
function ozetYaz(s: Siparis): string {
return `${s.musteri} - ${s.tutar.toFixed(2)}`;
}
ozetYaz({ id: 1, musteri: "Ayşe", tutar: 150, odendi: true }); // gültig
ozetYaz({ id: 2, musteri: "Can", tutar: "150", odendi: false });
// Fehler: Typ 'string' kann Typ 'number' nicht zugewiesen werden.Editor-Unterstützung
Typinformationen fangen nicht nur Fehler ab, sondern geben auch dem Editor Intelligenz. Welche Felder ein Objekt hat, wird automatisch vervollständigt, was eine Funktion erwartet, sehen Sie beim Darüberfahren, und benennen Sie ein Feld um, werden alle Verwendungen sicher aktualisiert. Dieses sichere Refactoring spart in großen Codebasen erheblich Zeit.
TypeScript vs. JavaScript
Der Unterschied zwischen TypeScript und JavaScript liegt nicht zur Laufzeit, sondern im Entwicklungsprozess. Die folgende Tabelle vergleicht beide Sprachen aus Sicht des Alltags:
| Thema | JavaScript | TypeScript |
|---|---|---|
| Typsystem | Dynamisch, zur Laufzeit | Statisch, wird beim Kompilieren geprüft |
| Ausführung | Direkt im Browser / in Node.js | Wird zuerst zu JavaScript kompiliert |
| Fehlererkennung | Überwiegend zur Laufzeit | Zu einem wesentlichen Teil schon beim Schreiben |
| Einrichtung | Nicht nötig | Compiler und Konfigurationsdatei erforderlich |
| Lernkurve | Geringer | Typkonzepte erfordern zusätzliches Lernen |
| Wartung bei großen Projekten | Mit Disziplin und Tests zu bewältigen | Typdefinitionen dienen zugleich als Dokumentation |
Vorteile von TypeScript
Die Vorteile von TypeScript spürt man vor allem, wenn das Projekt wächst und das Team größer wird. Bei einem kurzen Skript einer einzelnen Person ist der Unterschied klein; bei einem System, an dem fünf Entwickler zwei Jahre lang arbeiten, ist er entscheidend.
- Frühe Fehlererkennung: Tippfehler, fehlende Felder und falsche Typen werden sichtbar, bevor der Code läuft.
- Selbstdokumentierender Code: Ein- und Ausgabe einer Funktion lassen sich an den Typen ablesen; separate Dokumentation wird weniger gebraucht.
- Sichere Änderungen: Alle Dateien, die von einer Änderung am Datenmodell betroffen sind, listet der Compiler auf.
- Vertrag im Team: Gemeinsam genutzte Typen zwischen Frontend und Backend machen klar, was die API zurückgibt.
- Breite Unterstützung im Ökosystem: React, Next.js, Node.js und die meisten gängigen Bibliotheken kommen mit Typdefinitionen.
Es gibt auch Nachteile
TypeScript ist nicht umsonst. Es kommen ein Kompilierschritt und Konfiguration hinzu, komplexe Typdefinitionen können Einsteiger überfordern, und hastig geschriebene any-Typen heben die Typsicherheit unbemerkt wieder auf. Bei kleinen, kurzlebigen Projekten kann dieser Mehraufwand den Nutzen übersteigen. Außerdem haben manche alten, nicht mehr gepflegten Pakete unvollständige Typdefinitionen; für diese müssen die Definitionen unter Umständen von Hand geschrieben werden.
Bei welchem Projekt lohnt sich TypeScript?
Die Entscheidung hängt von Lebensdauer, Größe und Team des Projekts ab. Als Faustregel profitiert jede Software, die mehrere Personen lange Zeit warten werden, von TypeScript.
In Systemen, in denen viele Datenmodelle miteinander verknüpft sind, etwa Verwaltungspanels, Buchungsmaschinen sowie Bestands- und Bestellabläufen, sind Typdefinitionen gewissermaßen die Landkarte des Projekts. Bei individuellen Softwarelösungen zeigt diese Karte sofort, ob eine neue Funktion einen alten Bildschirm kaputtmacht.
Ähnlich ist es bei Projekten, die mit externen Systemen wie Marktplätzen, Versanddienstleistern und Buchhaltung kommunizieren. Wird die Form der von jedem Dienst zurückgegebenen Daten über Typen definiert, fällt eine Änderung auf der Gegenseite viel früher auf; das verringert Überraschungen bei Integrationen.
Eine Hotelsoftware, in der Zimmer-, Datums-, Preis- und Gästedaten gleichzeitig auf vielen Bildschirmen verwendet werden, oder eine Immobilien-Software, in der Inserate, Filter und Benutzerrollen ineinandergreifen, sind gute Beispiele für solche Projekte. Ändert sich Name oder Typ eines Felds, listet der Compiler alle Berichte, Formulare und Dienste, die dieses Feld nutzen, auf einmal auf; das Team schließt die Änderung ab, ohne eine Ecke zu übersehen.
- TypeScript ist sinnvoll: Anwendungen mit vielen Bildschirmen, Panels, langlebige Produkte, API- und Integrationsschichten.
- Nicht zwingend: One-Page-Vorstellungswebsites, kurze Kampagnenseiten, Automatisierungsskripte mit wenigen Zeilen.
Kosten des Umstiegs auf TypeScript
Ein bestehendes JavaScript-Projekt auf TypeScript umzustellen, muss nicht auf einmal geschehen. Da der Compiler JavaScript- und TypeScript-Dateien nebeneinander verarbeiten kann, ist ein schrittweiser Umstieg möglich.
Die Kosten bestimmen vor allem die Größe der Codebasis, vorhandene Tests, die Typunterstützung der verwendeten Bibliotheken und die Erfahrung des Teams. In einem Projekt mit Tests verläuft der Umstieg deutlich sicherer; dazu ist unser Beitrag Was ist Softwaretest? eine gute Ergänzung.
- Fügen Sie dem Projekt den Compiler und eine Konfigurationsdatei hinzu; starten Sie anfangs mit lockeren Regeln.
- Schreiben Sie jede neue Datei in TypeScript.
- Erstellen Sie Typdefinitionen für die am häufigsten verwendeten Datenmodelle.
- Wandeln Sie kritische Module einzeln um und führen Sie deren Tests aus.
- Ist die Codebasis bereit, verschärfen Sie die Regeln durch Aktivieren des Strict-Modus.
npm install --save-dev typescript
npx tsc --init
npx tsc --noEmitTipps zum Lernen von TypeScript
Wer TypeScript lernen möchte, fährt am besten damit, einem JavaScript-Projekt, das er kennt, nach und nach Typen hinzuzufügen. Zuerst kommen die Grundtypen (string, number, boolean, Array), dann interface- und type-Definitionen, danach Union-Typen und Generics.
Wenn Sie Oberflächen entwickeln, beschleunigt es das Lernen, TypeScript direkt zusammen mit React einzusetzen; die Props von Komponenten mit Typen zu beschreiben, ist eine sehr konkrete Übung. Zur React-Seite lesen Sie unseren Beitrag Was ist React?.
Für das offizielle Handbuch und die Testumgebung ist typescriptlang.org die verlässlichste Quelle. Im Playground im Browser sehen Sie sofort, in welches JavaScript der geschriebene Code umgewandelt wird.
Häufig gestellte Fragen
01Macht TypeScript meine Website schneller?
Direkt nicht. Typen werden beim Kompilieren entfernt, und der Code, der zum Browser geht, ist gewöhnliches JavaScript. Der indirekte Nutzen: weniger Fehler und die Möglichkeit sichererer Verbesserungen.
02Muss ich mit TypeScript keine Tests mehr schreiben?
Doch. Die Typprüfung bestätigt die Form der Daten, beweist aber nicht, dass die Geschäftsregel richtig funktioniert. Dass eine Rabattberechnung ein falsches Ergebnis liefert, kann typmäßig völlig gültig sein; das fangen nur Tests ab.
03Kann man mit TypeScript ein Backend schreiben?
Ja. Bei Backend-Diensten, die mit Node.js laufen, wird TypeScript häufig eingesetzt. Wenn sich Frontend und Backend dieselben Typdefinitionen teilen, bleibt der API-Vertrag auf beiden Seiten konsistent.
04Ist die Verwendung des any-Typs ein Fehler?
Während der Umstellung ist er vorübergehend akzeptabel, aber die dauerhafte Verwendung hebt die Typsicherheit auf. Für Daten mit unbekanntem Typ ist es sicherer, unknown zu verwenden und den Typ nach einer Prüfung einzugrenzen.
TypeScript bewahrt die Flexibilität von JavaScript und bietet zugleich ein Sicherheitsnetz, das Fehler schon beim Schreiben abfängt; bei langlebigen Projekten mit mehreren Beteiligten senkt es die Wartungskosten spürbar. Um gemeinsam zu bewerten, mit welcher Technologie Ihr Projekt aufgebaut werden sollte, sehen Sie sich unsere Seite zu individueller Software und Lösungen an; für die Webseite sprechen Sie mit unserem Webdesign-Team.


