1 Punkte von GN⁺ 2025-12-16 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Ein Refactoring-PR im Svelte-Repository sorgte 2023 für Aufmerksamkeit unter TypeScript-Skeptikern, als auf JSDoc-basierten Code umgestellt wurde
  • Svelte erklärte, dies sei keine anti-TypeScript-Haltung, sondern Teil einer fortgesetzten Abhängigkeit von TypeScript
  • Der Text betont, dass JSDoc und TypeScript kein Gegensatz sind, sondern dass JSDoc selbst ein Teil von TypeScript ist
  • TypeScript fungiert als IntelliSense-Engine und übernimmt sowohl die Auswertung von JSDoc-Kommentaren als auch die automatische Codevervollständigung
  • JSDoc bietet ohne Build-Schritt dieselben statischen Analysefähigkeiten und erfüllt in modernen JS-Projekten praktisch die gleiche Rolle wie TypeScript

Der Svelte-PR und der Hintergrund der Debatte

  • Im Mai 2023 schaffte es ein internes Refactoring-PR aus dem Svelte-Repository auf die Startseite von Hacker News
    • In diesem PR wurden Typdeklarationen aus .ts-Dateien in JSDoc-Kommentare innerhalb von .js-Dateien verlagert
    • Manche interpretierten das als Ablehnung der Vorteile von TypeScript
  • Svelte-Gründer Rich Harris erklärte auf HN selbst: „Das ist nicht gegen TypeScript gerichtet“
    • Er erwähnte, dass Sveltes Bekenntnis zu TypeScript weiterhin sehr stark ist
  • Danach erschienen zahlreiche Beiträge zum Vergleich „TypeScript vs. JSDoc“, und die Sichtweise verbreitete sich, JSDoc sei „TypeScript ohne Build-Schritt

Ursprung und Wesen von TypeScript

  • Ende der 2000er bis Anfang der 2010er Jahre galt JavaScript als Sprache mit zu wenig Autovervollständigung und Typsicherheit
    • Microsoft-Entwickler begegneten dem, indem sie mit ScriptSharp C#-Code in JS umwandelten
  • Vor diesem Hintergrund entstand TypeScript und startete seinem Wesen nach als Build-Tool zur Verbesserung der JS-Entwicklung

TypeScript ist IntelliSense

  • TypeScript ist nicht nur eine Sprache, sondern fungiert als IntelliSense-Engine
    • Auch ohne .ts-Dateien werden Funktionen wie Codevervollständigung, Parameterinformationen und Symbolnavigation vom TypeScript-Sprachdienst bereitgestellt
    • In den meisten Editoren läuft beim Schreiben von JS-Code der TypeScript-Dienst im Backend

TypeScript ist JSDoc

  • Der TypeScript-Sprachdienst wird auch für die Auswertung von JSDoc-Kommentaren verwendet
    • Im CHANGELOG von TypeScript finden sich häufig Einträge zu neuen JSDoc-Funktionen
    • Auch JSDoc-basierte Projekte lassen sich mit tsconfig.json konfigurieren, und mit dem Befehl tsc ist eine Typprüfung möglich
  • Entwickler, die JSDoc verwenden, nutzen also bereits TypeScript

Erfahrungen mit JSDoc-basierten Projekten

  • Der Autor berichtet von der Erfahrung, das Frontend eines bestehenden Projekts auf Basis von JSDoc-Typkommentaren neu geschrieben zu haben
    • Abgesehen von Laufzeitfunktionen wie Enums (enum) lässt sich der Großteil der TypeScript-Ausdrucksmöglichkeiten auch mit JSDoc umsetzen
    • Generics haben eine etwas kompliziertere Syntax, fördern dafür aber eine aktivere Nutzung der Typinferenz
  • In JSDoc-Projekten kann man beim Klick auf eine Funktion direkt zum tatsächlichen Code springen, was die Developer Experience verbessert
  • Das TypeScript-Tooling-Ökosystem lässt sich auch in JSDoc-Projekten wiederverwenden
    • Zum Beispiel können Bibliotheken, die Typen aus OpenAPI- oder GraphQL-Schemata generieren, diese als JSDoc-Kommentare erzeugen

Fazit und weitere Beispiele

  • JSDoc ist keine Alternative zu TypeScript, sondern teilt sich dasselbe System statischer Analyse
    • Es ermöglicht gleichwertige Typsicherheit, während der Build-Schritt entfällt
  • Zusätzlich wird erwähnt, dass auch das webpack-Projekt auf JSDoc migriert wurde
  • Als TypeScript-Experte vertritt der Autor klar die Position: „JSDoc ist TypeScript

Noch keine Kommentare.

Noch keine Kommentare.