JSON zu TypeScript — Typen aus JSON generieren
TypeScript-Typen aus JSON-Beispielen ableiten, inklusive verschachtelter Objekte und Arrays
Verarbeitung im Browser · kein Hochladen
Leitet die Typen aus einem einzigen Beispiel ab. Alle Eigenschaften sind Pflichtfelder, leere Arrays werden zu unknown[], unterschiedliche Array-Elemente ergeben Union-Typen. Es wird kein Validierungscode für die Laufzeit erzeugt.
So funktioniert es
- Fügen Sie ein JSON-Beispiel aus einer API-Antwort oder Konfigurationsdatei ein.
- Legen Sie einen Typnamen fest, etwa Root oder ApiResponse.
- Kopieren Sie den exportierten Typalias in eine TypeScript-Datei.
- Prüfen Sie Eigenschaften, die in echten Antworten fehlen oder null sein können.
Regeln der Typableitung
Strings werden zu string, Zahlen zu number, Wahrheitswerte zu boolean, und null bleibt null. Jede beobachtete Objekteigenschaft ist ein Pflichtfeld. Eigenschaftsnamen stehen in Anführungszeichen, sodass Umlaute, chinesische Zeichen, Emojis und Satzzeichen gültige Schlüssel bleiben. Unterschiedliche Strukturen in Arrays werden zu einem Union-Typ zusammengefasst, leere Arrays werden zu unknown[]. Ein leeres Objekt wird zu Record<string, never>.
Das ist eine Ableitung aus einem Beispiel, keine Schema-Erkennung. Eine erfolgreiche Antwort zeigt weder alle Fehlerantworten noch alle optionalen Felder. Doppelte Schlüssel werden abgelehnt, statt einen früheren Wert stillschweigend zu verwerfen. Kommentare und abschließende Kommas sind kein gültiges JSON. Typnamen bestehen aus ASCII-Buchstaben, Ziffern, Unterstrichen oder Dollarzeichen, dürfen nicht mit einer Ziffer beginnen und keine reservierten Wörter sein. Die Eingabe ist auf eine Million Zeichen und die Ableitung auf 64 Verschachtelungsebenen begrenzt.
Beispiele
{"name":"Jürgen","score":3,"tags":["中文","😀"]} ergibt string für name, number für score und Array[1,"two",null] ergibt Array<number | string | null>.
Datenschutz
Die Umwandlung erfolgt im Browser, ohne die Eingabe hochzuladen oder zu speichern. Das Ergebnis ist ein Ausgangspunkt für die Entwicklung; vergleichen Sie es mit dem dokumentierten API-Vertrag, bevor Sie sich darauf verlassen.
Häufige Fragen
Werden unterschiedlich aufgebaute Objekte zu optionalen Eigenschaften zusammengeführt?
Nein. Array-Elemente mit unterschiedlicher Struktur ergeben einen Union-Typ dieser Strukturen. Gleichen Sie das Ergebnis mit dem tatsächlichen API-Vertrag ab.
Welchen Typ bekommt ein leeres Array?
unknown[], denn das Beispiel verrät nichts über die Elemente. Wenn Sie den erwarteten Typ kennen, grenzen Sie ihn von Hand ein.
Validiert das Tool Daten zur Laufzeit?
Nein. Es erzeugt einen Typalias, keinen Parser und keine Validierungsfunktion. Typen verschwinden beim Kompilieren von TypeScript.
Wird mein JSON an einen Server gesendet?
Nein. Die Umwandlung läuft im Browser; die Eingabe wird weder hochgeladen noch gespeichert.