Wie ich TypeScript verkaufe (Sales Pitch)
(2ality.com)- TypeScript ist eine Sprache, die JavaScript Typinformationen hinzufügt
- Die Typinformationen werden entfernt, bevor der Code von der JS-Engine ausgeführt wird → das heißt, beim Schreiben und Bereitstellen ist zusätzliche Arbeit nötig
- Lohnt sich diese zusätzliche Arbeit? → Auf jeden Fall
Autovervollständigung und Fehlererkennung beim Bearbeiten von Code
- TypeScript bietet beim Schreiben von Code Autovervollständigung und Fehlererkennung
- Beispiel 1: Tippfehler, falsche Typen, fehlende Argumente
- Beim Zugriff auf nicht vorhandene Eigenschaften wird ein Fehler angezeigt. In der Autovervollständigung erscheinen sie nicht
- Beim Aufruf einer Methode für den falschen Typ wird ein Fehler angezeigt
- Wenn ein Pflichtargument fehlt, wird ein Fehler angezeigt
- Wenn ein Argument mit dem falschen Typ übergeben wird, wird ein Fehler angezeigt
- Beispiel 2: Fehler beim Funktionsrückgabewert
- Wenn der Rückgabewert nicht mit dem definierten Typ übereinstimmt, wird ein Fehler angezeigt
- Zum Beispiel tritt ein Fehler auf, wenn der Rückgabewert
string[]ist, der Rückgabetyp aber alsstringdefiniert wurde
- Beispiel 3: Fehler beim Umgang mit optionalen Eigenschaften
- Wenn eine optionale Eigenschaft als Rückgabewert verwendet wird und die Typen nicht übereinstimmen, wird ein Fehler angezeigt
- Beispiel 4: Fehlende case-Zweige in einer switch-Anweisung
- Wenn nicht alle case-Zweige einer switch-Anweisung behandelt werden, tritt ein Fehler auf
- Auch ein Verstoß gegen die Anforderung, dass der verbleibende Wert vom Typ
neversein muss, führt zu einem Fehler
- Beispiel 5: Fehler bei der Behandlung bestimmter Fälle im Code
- Wenn nach bestimmten Werten verzweigt wird, werden falsche Fälle als Fehler markiert
- Zum Beispiel tritt ein Fehler auf, wenn auf eine Eigenschaft zugegriffen wird, die bei einem bestimmten Objekttyp nicht existiert
Funktionsparameter und Rückgabetypen explizit angeben → gute Dokumentation
- TypeScript ermöglicht es, Parameter- und Rückgabetypen von Funktionen explizit anzugeben
- Das verbessert das Verständnis des Codes und seine Wartbarkeit
- Es wird klar ersichtlich, welche Typen die Argumente und Rückgabewerte einer Funktion haben
Besseres Refactoring von Code
- TypeScript hilft dabei, Refactorings sicherer durchzuführen
- Beim Umbenennen von Methodennamen werden alle verknüpften Stellen im Code sicher angepasst
- Zusammenhänge im Code lassen sich präzise nachvollziehen
Die Nutzung von TypeScript ist einfacher geworden
- Das Ausführen und Kompilieren von TypeScript ist einfacher geworden
- Auf Plattformen wie Node.js, Deno und Bun kann TypeScript direkt ausgeführt werden
- Bundler wie Vite unterstützen TypeScript standardmäßig
- Einführung von Type Stripping → nur Typinformationen werden entfernt, ohne weitere Transformationen
- Die Veröffentlichung von npm-Paketen wurde verbessert → unterstützt die automatische Erstellung von JavaScript- und Typdeklarationsdateien
Nachteile von TypeScript
- Es gibt eine Lernkurve → komplexer als JavaScript
- Bei einigen npm-Paketen kann es Probleme geben, wenn Typdefinitionen fehlen oder fehlerhaft sind
- Die Konfiguration von
tsconfig.jsonkann komplex sein- Mit möglichst strengen Einstellungen lassen sich Probleme abmildern
- Da Type Stripping klarer geworden ist, wurde die Rolle von
tsconfig.jsonvereinfacht
TypeScript-FAQ
Ist TypeScript-Code nicht zu schwergewichtig?
- Dank Typinferenz kann man in TypeScript auch mit minimalen Typdefinitionen Code schreiben
- Es ist auch ohne komplexe Typannotationen nützlich einsetzbar
Will TypeScript JavaScript in C# oder Java verwandeln?
- Anfangs wurden Klassen, Module, Enums usw. ergänzt, um fehlende Funktionen von JavaScript auszugleichen
- Heute wird TypeScript im Einklang mit dem ECMAScript-Standard weiterentwickelt
- Funktionen, die es in JavaScript nicht gibt, werden TypeScript nicht hinzugefügt
Unterstützt TypeScript nur objektorientierte Programmierung (OOP)?
- TypeScript unterstützt auch funktionale Programmiermuster sehr gut
- Zum Beispiel wird
discriminated unionhäufig in der funktionalen Programmierung verwendet
Muss man unbedingt komplexe Typdefinitionen lernen?
- Für die meisten Einsätze von TypeScript reichen einfache Typdefinitionen aus
- Komplexe Typdefinitionen sind beim Schreiben von Bibliotheken nützlich, für den allgemeinen Einsatz aber nicht erforderlich
Wie lange dauert es, TypeScript zu lernen?
- Die Grundkonzepte lassen sich an einem Tag erlernen
- Einfachen Code zu schreiben und zu debuggen ist ab dem nächsten Tag möglich
- Komplexere Typen und fortgeschrittene Funktionen können schrittweise gelernt werden
Weiterführende Lektüre
- What is TypeScript?
- Tackling TypeScript (kostenlos)
4 Kommentare
Es gibt Vorteile durch starke Typisierung, das gilt auch für C++.
Wenn man von JavaScript auf TypeScript umsteigt, fühlt es sich an, als hätte man beim Entwickeln die ganze Zeit mit geschlossenen Augen gearbeitet und sie plötzlich geöffnet. Die Stabilität durch Typen, Autovervollständigung und die Kombination mit Copilot.
Die Teams in unserem Unternehmen haben Projekte mit der Begründung umgesetzt, dass JavaScript völlig ausreiche, und stellen inzwischen alle auf TypeScript um.
Es ersetzt JavaScript nicht, sondern ergänzt es – das scheint der Erfolgsfaktor zu sein, mit dem TypeScript gegen Dart gewonnen hat. Ich bin wirklich froh, dass ich es gelernt habe.