Zum Inhalt springen
Akinware
Nahaufnahme von Quelltext auf dunklem Bildschirm

Was ist TypeScript?

TypeScript ist heute die Sprache hinter den meisten neuen Webprojekten. Was dahinter steckt, woher es kommt und wann es die bessere Wahl gegenüber JavaScript ist, verständlich erklärt.

Lesezeit
9 Minuten
Autor
Samet Akin
Veröffentlicht
Aktualisiert

Was ist TypeScript?

TypeScript ist eine typisierte Programmiersprache, die auf JavaScript aufbaut. Jedes gültige JavaScript ist zugleich gültiges TypeScript, Fachleute nennen so etwas ein Superset. Der Unterschied liegt in den Typen: In TypeScript steht am Code, ob eine Stelle einen Text, eine Zahl oder einen ganzen Kundendatensatz erwartet. Ein Prüfprogramm, der Compiler, kontrolliert vor dem Start, ob alle Teile zusammenpassen.

Was das bringt, zeigt ein Alltagsfehler. In JavaScript darf eine Funktion, die einen Kundendatensatz erwartet, mit allem aufgerufen werden: mit einer Zahl, mit einem leeren Wert, mit einem falsch geschriebenen Feldnamen. Der Fehler fällt erst auf, wenn ein Besucher die Seite bedient. TypeScript meldet dieselbe Stelle schon im Editor, mit roter Markierung und einer Erklärung, was nicht passt.

Im Browser läuft TypeScript nicht direkt. Vor der Veröffentlichung übersetzt der Compiler den Code in normales JavaScript und entfernt dabei alle Typangaben. Was beim Besucher ankommt, ist dasselbe JavaScript wie eh und je, nur dass es vorher eine vollständige Prüfung durchlaufen hat.

type Kunde = {
  name: string;
  plz: string;
};

function begruesse(kunde: Kunde) {
  return `Hallo ${kunde.name}`;
}

begruesse({ name: "Ayse", plz: "46045" }); // in Ordnung
begruesse({ nane: "Ayse" }); // Fehler vor dem Start: "nane" gibt es nicht

Wie funktioniert TypeScript?

TypeScript besteht aus zwei Teilen: der Sprache und dem Compiler. Die Sprache ist JavaScript plus Typangaben. Der Compiler, ein Programm namens tsc, liest den Code, prüft alle Typen gegeneinander und übersetzt das Ergebnis in normales JavaScript. Die Typangaben verschwinden dabei vollständig, sie sind ein Werkzeug für die Entwicklung, kein Ballast für den Besucher.

Im Alltag merkt man vom Compiler wenig, denn die Prüfung läuft ständig im Editor mit. Programme wie Visual Studio Code zeigen Fehler in dem Moment an, in dem sie entstehen, schlagen beim Tippen die richtigen Feldnamen vor und benennen eine Funktion im ganzen Projekt sicher um. Ein großer Teil des Nutzens von TypeScript ist genau diese Arbeitsumgebung.

Wie streng geprüft wird, lässt sich einstellen. Eine Konfigurationsdatei, die tsconfig, legt die Regeln fest; der sogenannte strict-Modus ist die empfohlene Stufe und bei uns Standard. TypeScript erkennt außerdem viele Typen von selbst: Wer einer Variablen eine Zahl zuweist, bekommt automatisch den Typ Zahl. Das nennt sich Typinferenz und hält den Code schlank, weil längst nicht an jeder Stelle eine Typangabe stehen muss.

type Status = "offen" | "bezahlt" | "storniert";

type Rechnung = {
  nummer: string;
  status: Status;
};

function markiereBezahlt(rechnung: Rechnung): Rechnung {
  return { ...rechnung, status: "bezahlt" };
}

// Der Compiler kennt alle gültigen Werte: ein Tippfehler
// wie "bezahllt" fällt sofort auf, nicht erst im Betrieb.

Wozu wird TypeScript verwendet?

Überall dort, wo JavaScript im Einsatz ist und der Code länger lebt als ein Wochenende. Die großen Frameworks wie Next.js, React und Angular sind auf TypeScript ausgelegt oder selbst darin geschrieben, deshalb ist es bei neuen Webprojekten heute die Regel und nicht die Ausnahme. Typische Einsatzgebiete sind:

  • Webanwendungen und Kundenportale, in denen viele Daten zwischen Server und Oberfläche fließen
  • Webseiten mit Logik, etwa Konfiguratoren, Buchungsstrecken oder Formulare mit Preisberechnung
  • Mobile Apps, die mit React Native aus einer Codebasis für iOS und Android entstehen
  • Server und Schnittstellen mit Node.js, vom kleinen Dienst bis zur kompletten Backend-Logik
  • Bibliotheken und Werkzeuge, deren Nutzer sich auf die Typen verlassen

Ein Beispiel aus unserer Arbeit: In einem Kundenportal fließen Angebote, Rechnungen und Termine zwischen Datenbank, Server und Browser. Jede dieser Stationen beschreibt ihre Daten mit denselben Typen. Bekommt eine Rechnung ein neues Feld, zeigt der Compiler jede Stelle, die das Feld noch nicht kennt, vom Datenbankzugriff bis zum Knopf in der Oberfläche. Ohne Typen wäre das eine Suche von Hand.

Auch diese Webseite ist in TypeScript geschrieben. Wir setzen die Sprache bei Akinware in praktisch jedem Projekt ein, vom Kundenportal bis zur Firmenwebseite, weil sie Fehler dorthin verlegt, wo sie am wenigsten kosten: auf den Bildschirm des Entwicklers statt in den Browser des Kunden. Das Framework dahinter stellen wir im Beitrag Was ist Next.js? vor.

Die Geschichte von TypeScript

TypeScript entstand bei Microsoft aus einem konkreten Problem. Um 2010 wuchsen Webanwendungen wie Outlook im Browser auf Hunderttausende Zeilen JavaScript, und die Sprache bot nichts, um so viel Code im Griff zu behalten. Anders Hejlsberg, der zuvor schon Turbo Pascal und C# entworfen hatte, entwickelte deshalb eine Erweiterung, die Typen ergänzt, ohne mit JavaScript zu brechen.

Erschienen
1. Oktober 2012
Entwickelt von
Microsoft, unter Leitung von Anders Hejlsberg
Lizenz
Quelloffen und kostenlos (Apache 2.0)
Verhältnis zu JavaScript
Erweiterung, jedes JavaScript ist gültiges TypeScript
Verbreitung
Unter den drei meistgenutzten Sprachen auf GitHub

Vom Nischenprojekt zum Standard

Zwei Bildschirme mit Code in einem abgedunkelten Büro

Veröffentlichung

Microsoft stellt TypeScript öffentlich vor, von Anfang an quelloffen. Die erste Reaktion ist verhalten, viele halten Typen im Web für unnötig.

1. Oktober 2012

Was TypeScript nicht kann

Zur ehrlichen Antwort auf die Frage, was TypeScript ist, gehört auch, was es nicht ist. Die Typprüfung passiert vor dem Start, nicht während die Anwendung läuft. Daten, die von außen kommen, etwa aus einem Formular oder einer fremden Schnittstelle, muss der Code weiterhin selbst kontrollieren. TypeScript sorgt dafür, dass diese Kontrolle an der richtigen Stelle eingebaut und nirgends vergessen wird, aber es übernimmt sie nicht.

  • Es prüft nicht zur Laufzeit: Eingaben von Besuchern und fremden Systemen brauchen eine eigene Kontrolle
  • Es macht schlechten Code nicht gut: eine unklare Struktur bleibt unklar, nur eben mit Typen
  • Es lässt sich aushebeln: wer überall any schreibt, schaltet den Schutz ab und behält nur den Aufwand
  • Es braucht einen Übersetzungsschritt: ohne Build-Werkzeuge läuft nichts, die gehören heute aber ohnehin zu jedem Webprojekt

Keiner dieser Punkte spricht gegen TypeScript, sie stecken nur den Rahmen ab. Die Sprache ist ein Sicherheitsnetz für Entwickler, kein Ersatz für sorgfältige Arbeit.

TypeScript oder JavaScript?

Die Frage stellt sich anders, als sie klingt, denn TypeScript ersetzt JavaScript nicht, es baut darauf auf. Wer TypeScript schreibt, schreibt JavaScript mit einer zusätzlichen Sicherheitsebene. Trotzdem gibt es Fälle, in denen sich die Entscheidung lohnt. TypeScript ist die bessere Wahl, wenn:

  • der Code über Jahre lebt und immer wieder erweitert wird
  • mehrere Personen daran arbeiten, auch nacheinander, etwa nach einem Dienstleisterwechsel
  • viele Daten zwischen Server und Oberfläche fließen, etwa Aufträge, Termine oder Rechnungen
  • das Projekt wachsen soll, ohne dass jeder Umbau zum Risiko wird

Reines JavaScript reicht dagegen für ein einzelnes Skript, das einmal läuft, oder eine Landing-Page ohne Logik, die nach der Kampagne wieder verschwindet. Ausführlicher steht das auf unserer Seite zur TypeScript-Entwicklung, inklusive der Fälle, in denen wir ehrlich abraten. Und was JavaScript selbst ausmacht, erklärt der Beitrag Was ist JavaScript?.

TypeScript aus Kundensicht

Für Auftraggeber ist TypeScript kein Feature, das man auf der fertigen Webseite sieht. Es wirkt an anderer Stelle: bei jeder Änderung nach dem Start. Ein neuer Preis, ein zusätzliches Formularfeld, eine weitere Unterseite, all das sind Eingriffe in bestehenden Code, und mit Typen sagt der Rechner vorher, was der Eingriff sonst noch berührt. Das senkt die Folgekosten, die über die Jahre meist höher ausfallen als die erste Entwicklung.

Wichtig wird die Sprache auch beim Wechsel des Dienstleisters. Typisierter Code erklärt sich dem nächsten Team deutlich schneller als ein Projekt, in dem niemand mehr weiß, welche Daten wo hineinfließen. Wer eine Webseite oder Anwendung beauftragt, darf deshalb ruhig fragen, in welcher Sprache sie entsteht und warum. Eine klare Antwort auf diese Frage sagt viel über die Arbeitsweise eines Dienstleisters.

Ist TypeScript die Zukunft?

Vieles spricht dafür, dass TypeScript weniger die Zukunft als längst die Gegenwart ist. Die großen Frameworks setzen es voraus oder empfehlen es, Node.js führt TypeScript-Dateien inzwischen direkt aus, und für JavaScript selbst liegt ein Vorschlag auf dem Tisch, Typangaben in die Sprache aufzunehmen. Die Richtung ist eindeutig: Typen gehören im Web dazu.

Auch am Werkzeug selbst arbeitet Microsoft weiter: der Compiler wird derzeit neu geschrieben, damit auch sehr große Projekte in Sekunden statt Minuten geprüft sind. Eine Sprache, die abgelöst werden soll, bekommt solche Investitionen nicht.

Verschwinden wird JavaScript deshalb nicht, denn jedes TypeScript-Projekt wird am Ende zu JavaScript übersetzt. Wer heute auf TypeScript setzt, folgt also keinem Trend, sondern nutzt eine Sprache, die seit über einem Jahrzehnt gepflegt wird und hinter der neben Microsoft eine breite Community steht.

Was TypeScript stark macht

Zwei Bildschirme mit Code in einem abgedunkelten Büro

Fehler vor dem Start

Der Compiler prüft den gesamten Code, bevor er veröffentlicht wird. Eine ganze Klasse von Fehlern erreicht den Browser gar nicht erst.

Nahaufnahme einer beleuchteten Tastatur am Abend

Code, der sich erklärt

Typen dokumentieren, welche Daten wo erwartet werden. Wer neu ins Projekt kommt, liest das direkt aus dem Code statt aus veralteten Notizen.

Bildschirm mit Diagrammen und Kennzahlen einer Webanwendung

Werkzeuge, die mitdenken

Der Editor kennt jede Funktion und jedes Feld. Autovervollständigung und sichere Umbenennungen sparen jeden Tag Zeit.

Arbeitsplatz mit Bildschirm während der Überarbeitung einer Webseite

Umbauten ohne Angst

Ändert sich eine Datenstruktur, zeigt der Compiler jede betroffene Stelle. Große Umbauten werden planbar statt riskant.

Was wir mit TypeScript bauen

  • Bildschirm mit der Oberfläche einer Webanwendung

    Webanwendungen

    Portale, Dashboards und interne Werkzeuge, bei denen viele Daten sicher durch viele Hände gehen.
  • Laptop mit einer geöffneten Firmenwebseite

    Webseiten

    Firmenwebseiten mit Next.js: schnell, wartbar und bereit für Erweiterungen wie Konfiguratoren oder Buchungen.
  • Smartphone mit einer geöffneten App

    Apps

    Mobile Apps mit React Native: eine Codebasis für iOS und Android, geprüft vom selben Typsystem.

Häufige Fragen

Was ist der Unterschied zwischen TypeScript und JavaScript?

TypeScript ist JavaScript mit Typen. Der Code sagt, welche Daten er erwartet, wird vor der Veröffentlichung geprüft und dann in JavaScript übersetzt. Funktionsumfang und Ergebnis im Browser sind gleich, der Unterschied liegt in der Sicherheit während der Entwicklung.

Ist TypeScript schwer zu lernen?

Wer JavaScript kann, schreibt nach einem Tag brauchbares TypeScript. Die Grundtypen sind schnell verstanden, und der Editor hilft mit Vorschlägen und Fehlermeldungen. Anspruchsvoll wird es erst bei fortgeschrittenen Typkonstruktionen, die man im Alltag selten braucht.

Läuft TypeScript im Browser?

Nein, Browser verstehen nur JavaScript. TypeScript wird vor der Veröffentlichung automatisch übersetzt, das Ergebnis läuft dann in jedem Browser. Als Besucher einer Seite merkt man davon nichts.

Ersetzt TypeScript JavaScript?

Nein. TypeScript ist eine Erweiterung von JavaScript, kein Ersatz. Jedes gültige JavaScript ist zugleich gültiges TypeScript, deshalb lässt sich bestehender Code auch schrittweise umstellen, Datei für Datei.

Was kostet TypeScript?

Nichts. Die Sprache, der Compiler und die Werkzeuge sind quelloffen und kostenlos. Bezahlt wird wie immer die Entwicklungszeit, und die ist über die Lebensdauer eines Projekts mit TypeScript meist geringer, weil weniger Fehler den Weg in den Betrieb finden.

Brauche ich TypeScript für meine Webseite?

Als Auftraggeber müsst ihr das nicht selbst entscheiden, die Wahl trifft euer Dienstleister. Ihr merkt den Unterschied indirekt: an weniger Fehlern nach Änderungen und daran, dass auch nach Jahren noch jemand den Code versteht. Wir setzen TypeScript deshalb standardmäßig ein.

Welche Unternehmen nutzen TypeScript?

Microsoft entwickelt die Sprache und nutzt sie selbst, dazu kommen unter anderem Google, Airbnb und Slack. Auch die großen Frameworks wie Angular und Next.js entstehen in TypeScript. Wir bei Akinware setzen es in praktisch jedem Projekt ein, diese Webseite eingeschlossen.

Weiterlesen

  • Beleuchtete Tastatur vor zwei Bildschirmen mit Code

    Was ist NestJS?

    NestJS gibt Backends in TypeScript eine feste Ordnung: Jedes Projekt ist gleich aufgebaut, und neue Entwickler finden sich schnell zurecht. Was dahinter steckt und wann sich das lohnt, verständlich erklärt.
  • Bildschirm mit farbig hervorgehobenem Quelltext

    Was ist JavaScript?

    JavaScript ist die einzige Programmiersprache, die jeder Browser versteht, und steckt deshalb in praktisch jeder Webseite. Woher die Sprache kommt, was sie kann und wo ihre Grenzen liegen, verständlich erklärt.
  • Nahaufnahme von Quelltext auf dunklem Bildschirm

    Was ist Node.js?

    Node.js bringt JavaScript auf den Server und treibt dort Schnittstellen, Datenabgleiche und ganze Backends an. Woher es kommt, was es gut kann und wo seine Grenzen liegen, verständlich erklärt.

Kontakt und kostenlose Beratung

Hände tippen auf einer Laptop-Tastatur, daneben eine Tasse Kaffee
Telefon0208 78015410E-Mailinfo@akinware.com
Adresse
Huyssenstraße 6G, 46119 Oberhausen
Worum geht es