TypeScript vs. JavaScript: der echte Unterschied

TypeScript vs. JavaScript

TypeScript vs. JavaScript: was sich ändert, was tsc ausgibt | We.Inc

Sieh TypeScript und das daraus kompilierte JavaScript nebeneinander, erfahre, was der Type Checker findet, warum Typen zur Laufzeit verschwinden und wann einfaches JavaScript reicht.

TypeScript ist JavaScript plus ein Typsystem. Du schreibst normales JavaScript mit optionalen Typannotationen, und der Compiler tsc prüft sie und entfernt sie dann, um reines JavaScript zu erzeugen. Browser und Node führen diese Ausgabe aus, daher existieren Typen zur Laufzeit nie. Der Gewinn liegt darin, Fehler schon beim Bearbeiten zu finden, nicht in schnellerem Code.

Im direkten Vergleich

Wähle unten ein Beispiel, um eine TypeScript-Datei neben dem JavaScript zu sehen, das tsc daraus geschrieben hat. Meistens ist die Ausgabe dein Code ohne die Annotationen. Einige Features, etwa Enums, erzeugen echten Code, und dieser Unterschied spielt bei der Wahl deiner Tools eine Rolle.

Häufige Fragen

Ist TypeScript eine andere Sprache als JavaScript?

Es ist eine Obermenge. Jedes TypeScript-Programm wird zu JavaScript, und TypeScript ergänzt Syntax, um die Form von Werten zu beschreiben. Lerne zuerst JavaScript; die Typen setzen darauf auf, statt es zu ersetzen.

Macht TypeScript meine Website schneller?

Nein. Annotationen werden entfernt, bevor der Code läuft, daher führt der Browser dasselbe JavaScript aus, das du von Hand geschrieben hättest. Die Vorteile sind weniger Bugs, die bei Nutzern ankommen, und sichereres Refactoring.

Verweigert tsc den Build, wenn es einen Typfehler gibt?

Standardmäßig nicht. tsc meldet den Fehler und schreibt trotzdem die .js-Datei, was eine schrittweise Migration möglich macht. Setze noEmitOnError, wenn eine fehlgeschlagene Prüfung die Ausgabe blockieren soll.

Kann Node .ts-Dateien ohne Build-Schritt ausführen?

Aktuelle Node-Versionen entfernen löschbare Typsyntax und führen die Datei aus; Type Stripping ist seit v23.6.0 und v22.18.0 standardmäßig aktiv. Node prüft keine Typen, und Syntax, die generierten Code braucht, etwa Enums, wird abgelehnt.

Wann ist einfaches JavaScript die bessere Wahl?

Kleine Skripte, schnelle Prototypen und Seiten mit ein paar Zeilen Interaktivität rechtfertigen den Einrichtungsaufwand selten. Sobald ein Projekt mehrere Dateien, mehrere Beteiligte oder Daten hat, die zwischen Modulen weitergereicht werden, spart der Checker spürbar Zeit.

Was tsc tatsächlich macht

Typen werden entfernt, also prüfe echte Daten

Features, die nicht einfach entfernt werden

TypeScript zu einem JavaScript-Projekt hinzufügen

Installieren und eine tsconfig anlegen

Installiert den Compiler lokal, schreibt eine Start-tsconfig.json und führt eine Prüfung aus, ohne Dateien zu schreiben.

allowJs lässt alte .js-Dateien während einer Migration neben neuen .ts-Dateien bestehen; noEmit überlässt die Ausgabe deinem Bundler.

Daten prüfen, die der Compiler nicht sieht

Ein Laufzeit-Guard, der den Typ eingrenzt

Die Funktion prüft den Wert wirklich, und der Rückgabetyp teilt dem Compiler mit, was sie bewiesen hat.

Annotationen

Parameter- und Rückgabetypen werden geprüft und dann gelöscht. Der Funktionsrumpf bleibt unverändert.

Interface

Ein Interface erzeugt überhaupt keine Ausgabe. Es existiert nur für den Checker.

Enum

Ein normales Enum wird zu einem echten Objekt mit umgekehrter Zuordnung, das ist also generierter Code und keine entfernte Syntax.

const enum

tsc setzt die Mitglieder eines const enum als Zahlen direkt ein und hinterlässt einen Kommentar mit dem ursprünglichen Namen.

Typfehler

tsc meldet: Argument of type 'string' is not assignable to parameter of type 'number'. Die Datei wird trotzdem geschrieben, sofern noEmitOnError nicht gesetzt ist.

TypeScript und das JavaScript, das daraus wird

Wähle ein Beispiel

TypeScript, das du schreibst

JavaScript, das tsc ausgibt (Ziel es2022)

TypeScript kopieren

JavaScript kopieren

{n} Zeilen rein, {v} Zeilen raus

Kostenlos starten · Keine Kreditkarte nötig

Verwandt: Ratgeber

Produkt

Für wen

Funktionen

Ressourcen

Unternehmen

Sitemap