4 Punkte von GN⁺ 2025-03-25 | 4 Kommentare | Auf WhatsApp teilen
  • 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 als string definiert 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 never sein 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.json kann komplex sein
    • Mit möglichst strengen Einstellungen lassen sich Probleme abmildern
    • Da Type Stripping klarer geworden ist, wurde die Rolle von tsconfig.json vereinfacht

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 union hä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

4 Kommentare

 
skrevolve 2025-03-26

Es gibt Vorteile durch starke Typisierung, das gilt auch für C++.

 
slowandsnow 2025-03-25

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.

 
bungker 2025-03-25

Die Teams in unserem Unternehmen haben Projekte mit der Begründung umgesetzt, dass JavaScript völlig ausreiche, und stellen inzwischen alle auf TypeScript um.

 
tsboard 2025-03-25

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.