Getty Images/iStockphoto
JavaScript versus TypeScript: Was ist der Unterschied?
TypeScript und JavaScript sind zwei sich ergänzende Technologien, welche die Frontend- und Backend-Entwicklung vorantreiben. Die Gemeinsamkeiten und Unterschiede beider Sprachen.
JavaScript und TypeScript sind sich sehr ähnlich, aber es gibt einen wichtigen Unterschied.
Der Hauptunterschied zwischen JavaScript und TypeScript besteht darin, dass JavaScript kein Typsystem besitzt. In JavaScript können Variablen willkürlich ihre Form ändern, während TypeScript im Strict Mode dies verbietet. Dadurch ist TypeScript einfacher zu verwalten und zu pflegen, insbesondere bei einer großen Codebasis.
Beispiele für JavaScript und TypeScript
Das Typsystem von TypeScript hat einen geringen Einfluss darauf, wie Variablen referenziert und deklariert werden, aber es hat einen großen Einfluss auf die Möglichkeiten der Wartung und Konsistenz.
Hier ein Beispiel, wie Sie numerische und textbasierte Variablen in JavaScript deklarieren:
let foo = 1
let bar = "text"
bar = 123 // in JavaScript erlaubt
Hier sind die gleichen Variablen in TypeScript deklariert und initialisiert:
let foo: number = 1
let bar: string = "text"
bar = 123 // nicht erlaubt in TypeScript
Der Unterschied in der Syntax ist gering.
Die Verwendung von number- und string-Typen ermöglicht es TypeScript jedoch, die Regel durchzusetzen, dass: Wenn eine Variable als ein bestimmter Typ deklariert ist, darf sie ihren Typ später im Programm nicht willkürlich ändern.
Diese Regel ist der Grund, warum es in TypeScript nicht möglich ist, dass die Variable bar von einem String zu einer Zahl wechselt. JavaScript lässt dies zu.
Die Einführung eines Typensystems scheint keine große Sache zu sein, aber sie hat einen großen Einfluss auf die Verwaltung großer Anwendungen.
Wenn mit TypeScript einer Variablen ein neuer Wert zugewiesen wird, können IDEs und Validierungs-Tools diese Änderung schnell anhand von Zehntausenden von Codezeilen überprüfen. Die gleiche Art der Überprüfung ist mit JavaScript nur schwer möglich. Dadurch erhöht sich das Fehlerrisiko bei der Erweiterung, Aktualisierung und Fehlerbehebung von JavaScript.
Das Vorhandensein von Typprüfungen ermöglicht es IDEs auch, Validierungs- und Refactoring-Funktionen einzubauen, die mit einer nicht typgeprüften Sprache nicht möglich sind. Es gibt leistungsstarke IDEs sowohl für TypeScript als auch für JavaScript, aber die TypeScript-IDEs sind in der Regel mit mehr Funktionen ausgestattet, die bei der Erstellung, Fehlerbehebung und Refaktorierung von Code helfen.
Von TypeScript zu JavaScript
TypeScript ist kein Ersatz für JavaScript. TypeScript ist einfach eine funktionsreichere und technisch solidere Art, JavaScript zu schreiben.
Um eine in TypeScript geschriebene Anwendung auszuführen, müssen Sie den Code zunächst in JavaScript kompilieren. TypeScript ist einfach ein besserer Weg, um JavaScript-Code zu schreiben, der ECMAScript-kompatibel ist, um die Interoperabilität zwischen verschiedenen Webbrowsern zu gewährleisten.
Sie können sich TypeScript einfach als einen JavaScript-Generator vorstellen. Mit TypeScript können Sie JavaScript-Code erstellen, der in jeder Umgebung ausgeführt werden kann, die den JavaScript-Standard unterstützt.
Die Mängel von JavaScript
JavaScript wurde ursprünglich erfunden, um in einer Version von Netscape Navigator aus dem Jahr 1995 zu laufen. Damals trafen die Entwickler Designentscheidungen, die heute als unvorstellbar erscheinen, wie zum Beispiel:
- Computer mit Single-Core-Prozessoren
- CPU-Geschwindigkeiten im zweistelligen Megahertz-Bereich, nicht im Gigahertz-Bereich
- Geräte mit weniger als 1 MB RAM
- typische Download-Geschwindigkeiten von 14,4-56 Kbps
- kein Zugriff auf Netzwerk-Ports oder das Dateisystem
- die Ausführung erfolgt ausschließlich innerhalb einer Webseite
Die JavaScript-Sprache wurde taktisch aufgebaut, um Webentwicklern einfache Kernfunktionen zur Verfügung zu stellen.
Dreißig Jahre später zeigen sich diese JavaScript-Schwächen, vor allem wenn Entwickler die Sprache verwenden, um progressive Webanwendungen mit Angular und React oder anspruchsvolle Backend-Microservices mit NodeJS zu erstellen.
Um die Unzulänglichkeiten von JavaScript zu beheben, erfand Microsoft im Jahr 2012 TypeScript.
TypeScript wurde von Grund auf als elegante, vollständig objektorientierte Programmiersprache entwickelt, die funktionale Features und eine optionale Typüberprüfung zur Entwurfszeit bietet.
Mit TypeScript können Entwickler eine Sprache verwenden, die genauso elegant, fundiert und funktionsreich ist wie C# oder Java. Nach der Kompilierung verwandelt sich TypeScript in plattformübergreifenden JavaScript-Code, der garantiert in jeder ECMAScript-kompatiblen Laufzeitumgebung funktioniert.
JavaScript und TypeScript im Vergleich | ||
Kriterien |
JavaScript |
TypeScript |
Erste Veröffentlichung |
1995 |
2012 |
Entwickelt von |
Netscape |
Microsoft |
Inhaber der Marke |
Oracle |
Microsoft |
Standard |
ECMAScript 5 |
ECMAScript 2015 |
Typisierung |
Dynamisch |
Optional starke Typisierung |
Community und Anwendung |
Größer als TypeScript |
Kleiner als JavaScript |
Kompilierung |
Nicht notwendig |
Wird in JavaScript kompiliert |
Dateierweiterung |
.js und .jsx |
.ts und .tsx |
IDE-Unterstützung |
Eingeschränkte Validierungs- und Refactoring-Funktionen |
Umfangreiche Validierungs- und Refactoring-Funktionen |
Komplexität |
Einfach zu erlernende Skriptsprache für neue Entwickler |
Zusätzliche Funktionen erfordern eine gewisse Zeit zum Erlernen |
Lesbarkeit |
Große Codebasen sind schwieriger zu lesen und zu entschlüsseln |
Typsystem und objektorientierter Ansatz verbessern die Lesbarkeit |
Kompatibilität |
Jeder JavaScript-Code ist auch gültiger TypeScript-Code |
TypeScript-Code wird in vollständig kompatibles JavaScript kompiliert |
ECMAScript versus TypeScript
ECMAScript ist der Standard, dem jeder JavaScript-Code entsprechen muss.
Ein Anbieter wie Microsoft kann der JavaScript-Sprache nicht willkürlich Funktionen hinzufügen, ohne die ECMAScript-Konformität zu verletzen.
Im Gegensatz dazu kann Microsoft mit TypeScript jede beliebige neue Funktion hinzufügen, solange das generierte JavaScript ECMAScript-konform ist. Damit hat Microsoft alle Freiheiten, TypeScript so funktionsreich zu machen wie jede andere Programmiersprache, einschließlich Java, Rust, Golang und C.
TypeScript und JavaScript im Vergleich
Was die Funktionen betrifft, so gibt es zehn wesentliche Unterschiede zwischen JavaScript und TypeScript:
- TypeScript kann stark typisiert werden, während JavaScript nur dynamisch typisiert ist.
- TypeScript ist besser lesbar und lässt sich leichter pflegen als JavaScript.
- TypeScript unterstützt Abstraktion durch Schnittstellen, während JavaScript dies nicht tut.
- TypeScript erlaubt es Entwicklern, Code mit Dekoratoren zu kommentieren, während JavaScript dies nicht kann.
- TypeScript unterstützt die Möglichkeit, Komponenten durch die Verwendung von Namespaces zu modularisieren und zu organisieren, was in JavaScript nicht unterstützt wird.
- TypeScript ist durch die Verwendung von Syntaxelementen wie optionalen und benannten Parametern ausdrucksstärker als JavaScript.
- TypeScript unterstützt Generika und eine Funktion zur Typinferenz, die in JavaScript nicht verfügbar ist.
- TypeScript-IDEs haben mehr Funktionen, da es einfacher ist, Plug-ins und Tools für eine statisch typisierte Sprache zu entwickeln.
- TypeScript-Code ist einfacher zu debuggen, wenn die Codebasis wächst, da Typfehler bei der Kompilierung und nicht zur Laufzeit entdeckt werden können.
- TypeScript implementiert zusätzliche Funktionen, die über die begrenzte ECMAScript-Spezifikation hinausgehen, mit der JavaScript konform ist.
TypeScript macht JavaScript besser
TypeScript ist kein Konkurrent zu JavaScript. Stattdessen ergänzt TypeScript JavaScript.
TypeScript bietet der Community eine dynamischere, umfassendere und sicherere Möglichkeit, Anwendungen für Unternehmen zu entwickeln, deren Ziel-Laufzeit JavaScript erfordert.
TypeScript ist nicht dazu gedacht, JavaScript zu ersetzen. Vielmehr soll es die Verbreitung von JavaScript-basierten Plattformen fördern, indem es das Schreiben, Integrieren, Verwalten und Warten von Code erleichtert.
JavaScript-basierte Plattformen wie NodeJS auf einem Server und ReactJS auf Client-Seite gewinnen immer mehr an Popularität. Die Möglichkeit, Code in TypeScript zu schreiben und in JavaScript umzuwandeln, ist einer der Gründe dafür, dass die Akzeptanzraten für beide Sprachen steigen.