JSON zu TypeScript 🔒 Läuft lokal in Ihrem Browser — nichts wird hochgeladen.

TypeScript-Interfaces aus einem JSON-Beispiel erzeugen.

 

Über dieses Tool

TypeScript-Interfaces von Hand passend zu einer API-Antwort zu tippen ist Fleißarbeit — und leicht subtil falsch. Fügen Sie hier ein JSON-Beispiel ein und erhalten Sie sofort passende Interfaces. Verschachtelte Objekte werden in eigene benannte Interfaces ausgelagert, Arrays von Objekten werden zusammengeführt, sodass in manchen Einträgen fehlende Schlüssel optional werden, und Werte mit mehr als einem Typ werden zu Unions.

Es läuft mit einem leichtgewichtigen Inferer vollständig im Browser — Ihr JSON wird nie hochgeladen. Einfügen, bei Bedarf den Root-Namen anpassen und einsatzbereite Typen in Ihr Projekt kopieren.

Häufige Fragen

Wird mein JSON irgendwohin hochgeladen?

Nein. Parsing und Typinferenz laufen vollständig im JavaScript Ihres Browsers ab — Ihr JSON verlässt Ihr Gerät nie.

Wie geht es mit einem Array um, in dem die Objekte unterschiedliche Felder haben?

Es führt die Schlüssel aller Objekte im Array zu einer einzigen Schnittstelle zusammen; jeder Schlüssel, der nicht in allen vorkommt, wird statt entfernt zu werden mit `?` als optional markiert.

Was passiert bei einem Array mit gemischten Typen, etwa Zahlen und Strings?

Es erzeugt einen Union-Array-Typ wie `(string | number)[]`, sodass die Form weiterhin jeden im Beispiel tatsächlich vorkommenden Wert widerspiegelt.

Kann ich Typ-Aliase statt Interfaces generieren?

Ja, aktivieren Sie 'as type', um jedes generierte `interface Name {}` in `type Name = {}` umzuwandeln — nützlich, wenn Ihre Codebasis Typ-Aliase bevorzugt.

Was passiert, wenn ich ungültiges JSON einfüge?

Das Tool zeigt eine Fehlermeldung mit der genauen Zeile und Spalte des Problems an und lässt Sie direkt dorthin springen, statt einer allgemeinen Meldung 'invalid JSON'.

Verarbeitet es verschachtelte Objekte und Arrays, nicht nur flaches JSON?

Ja. Ein verschachteltes Objekt wird zu einer eigenen benannten Schnittstelle, deren Name vom übergeordneten Schlüssel stammt (so erzeugt `profile: {...}` eine `Profile`-Schnittstelle), und Array-Namen werden in den Singular gesetzt (`roles` → `Role[]`). Ein Array von Objekten erzeugt eine einzige, von allen Elementen geteilte Schnittstelle, mit `?` bei Feldern, die nicht überall vorkommen — nicht eine eigene Schnittstelle pro Element.