DokumenteBilderMedienPDF-Werkzeuge

JSON in TypeScript

TypeScript-Interfaces aus JSON sofort im Browser generieren.

Processed in your browser

Von JSON zu typsicheren Interfaces in Sekunden

Typsicherheit

Typfehler zur Compile-Zeit abfangen, nicht in der Produktion. Deine IDE kennt die genaue Datenstruktur.

Verschachtelte Objekte

Generiert separate Interfaces für jede Verschachtelungsebene mit Verweisen zwischen ihnen.

Sofortige Verarbeitung

Komplexe JSON-Strukturen in unter 1 Sekunde in TypeScript-Interfaces umwandeln.

Privat

JSON verlässt niemals deinen Browser. Daten aus internen APIs mit vollständiger Sicherheit einfügen.

Drei Schritte, kein Aufwand

1

JSON einfügen

Gib das JSON-Objekt oder -Array ein, aus dem du Interfaces generieren möchtest. Es kann eine API-Antwort, eine Konfigurationsdatei oder jede andere Datenstruktur sein.

2

TypeScript-Interfaces erhalten

Der Generator analysiert die Struktur, erkennt verschachtelte Objekte, Arrays und primitive Typen und erstellt TypeScript-Interfaces mit aussagekräftigen Namen.

3

Kopieren und im Projekt nutzen

Kopiere die generierten Interfaces und füge sie in deinen TypeScript-Code ein. Erhalte Autovervollständigung und Typsicherheit ab der ersten Verwendung.

Noch Fragen?

TypeScript bietet Typsicherheit zur Compile-Zeit, d. h. Typfehler werden abgefangen, bevor der Code ausgeführt wird. Wenn du mit REST-APIs arbeitest, kommen Daten als JSON ohne Typinformationen an. Das Generieren von TypeScript-Interfaces aus der API-Antwort gibt dir IDE-Autovervollständigung, Fehlererkennung zur Compile-Zeit und implizite Dokumentation der Datenstruktur, was Produktionsfehler reduziert.

Verschachtelte Objekte werden in separate Interfaces umgewandelt, die aufeinander verweisen. Wenn du z. B. ein User-Objekt mit einer address-Eigenschaft hast, die ein weiteres Objekt ist, erstellt der Generator ein Address-Interface und ein User-Interface, bei dem address: Address ist. Das hält den Code strukturiert und wiederverwendbar.

Standardmäßig werden alle JSON-Felder als erforderlich generiert. Wenn ein Feld in der echten API null oder undefined sein kann, musst du es manuell als optional markieren, indem du ein ? nach dem Namen hinzufügst (feld?: Typ) oder null zum Typ hinzufügst (feld: string | null). Einige Generatoren schlussfolgern Optionalität, wenn das Feld über mehrere Beispiele derselben Struktur hinweg fehlt.

Wenn ein Array Elemente verschiedener Typen enthält (z. B. [1, 'Text', true]), generiert TypeScript einen Union-Typ: Array<number | string | boolean>. Wenn alle Elemente denselben Typ haben, wird der spezifische Typ generiert: number[]. Für Arrays von Objekten wird ein Interface für das Objekt erstellt und Array<InterfaceName> verwendet.

JSON Schema ist ein Laufzeit-Datenvalidierungsstandard, sprachunabhängig, definiert von der IETF (draft-07 und höher). TypeScript-Interfaces sind Compile-Zeit-Konstrukte, die nur im Quellcode existieren und nach der Transpilierung zu JavaScript verschwinden. JSON Schema validiert echte Daten in der Produktion; TypeScript-Interfaces validieren nur während der Entwicklung. Du kannst beides nutzen: Interfaces für die IDE und JSON Schema für die Eingabevalidierung auf dem Server.

TypeScript: Geschichte, strukturelles Typsystem und seine Bedeutung für die Webentwicklung

TypeScript wurde von Anders Hejlsberg bei Microsoft entwickelt und im Oktober 2012 öffentlich angekündigt (Version 0.8). Hejlsberg ist auch der Schöpfer von Turbo Pascal (1983) und Chefarchitekt von C# (2000), zwei Sprachen, die Epochen in der Branche definiert haben. TypeScripts Motivation kam aus den Problemen bei der Skalierung großer JavaScript-Anwendungen: Ohne statische Typen werden Fehler erst zur Laufzeit entdeckt, Refactoring ist riskant und die IDE-Autovervollständigung ist begrenzt. Die erste öffentliche Version von TypeScript kompilierte zu JavaScript ES3 und ES5.

TypeScripts Typsystem verwendet strukturelles Typen (Duck Typing), im Gegensatz zu Sprachen wie Java oder C#, die nominales Typen verwenden. Beim strukturellen Typen sind zwei Typen kompatibel, wenn sie dieselbe Form haben, unabhängig von ihrem Namen oder ihrer Deklaration. Das bedeutet, wenn eine Funktion ein Objekt mit {name: string, age: number} erwartet, wird jedes Objekt mit diesen Eigenschaften akzeptiert, auch wenn es kein Interface explizit implementiert. Diese Designentscheidung macht TypeScript natürlicher für die Arbeit mit JSON und JavaScript-Objekten.

Die Übernahme von TypeScript ist rasant gestiegen: In der State-of-JS-Umfrage 2024 nutzen über 78 % der JavaScript-Entwicklerinnen und -Entwickler es regelmäßig. Tools wie quicktype.io (Open Source, als CLI und Bibliothek verfügbar) und json2ts.com haben die automatische TypeScript-Interface-Generierung aus JSON populär gemacht. Im modernen API-first-Workflow ist es üblich, TypeScript-Interfaces direkt aus OpenAPI/Swagger-Spezifikationen mit Tools wie openapi-typescript zu generieren, was sicherstellt, dass der TypeScript-Client immer mit der Serverspezifikation synchronisiert ist.