JSON zu TypeScript Interface Generator

Füge ein JSON-Beispiel ein, etwa eine API-Antwort oder eine Konfiguration, und erhalte sofort einsatzbereite TypeScript-Interfaces mit verschachtelten Typen, optionalen Eigenschaften und Union-Types.

Aktualisiert am
Deklarieren als
Arrays

Deine Daten verlassen nie deinen Computer. Die Verarbeitung erfolgt zu 100 % lokal im Browser.

So nutzt du: JSON zu TypeScript

  1. Füge ein repräsentatives JSON-Beispiel ein, z. B. eine Antwort, die du aus dem Netzwerk-Tab deines Browsers kopiert hast.
  2. Lege den Namen des Root-Typs fest, zum Beispiel User oder ApiResponse.
  3. Wähle interface oder type, die Array-Syntax und ob die Deklarationen exportiert oder Eigenschaften als readonly markiert werden sollen.
  4. Kopiere den generierten Code in eine .ts-Datei oder lade ihn herunter.

Was macht ein JSON-zu-TypeScript-Konverter?

Er leitet statische Typen aus Beispieldaten ab. Statt für jede API-Antwort ein Interface von Hand zu schreiben, fügst du eine echte Antwort ein und erhältst passende TypeScript-Deklarationen: ein benanntes Interface pro verschachteltem Objekt, typisierte Arrays und Unions, wo sich Werte unterscheiden. Das ist der schnellste Weg zu Autovervollständigung und Prüfungen zur Compile-Zeit für Daten aus einer REST-API, einem Webhook oder einer JSON-Konfigurationsdatei.

So werden Typen abgeleitet

JSON-WertTypeScript-Typ
"text"string
42, 3.14number
trueboolean
nullnull (in Kombination mit anderen Typen, z. B. string | null)
{ … }Ein benanntes Interface (Schlüssel profile → Profile)
["a", "b"]string[]
[1, "two"](number | string)[]
[]unknown[] (kein Beispiel zum Ableiten vorhanden)

Arrays aus Objekten werden zusammengeführt

Enthält ein Array mehrere Objekte, führt der Generator sie zu einem einzigen Interface zusammen, statt nur das erste Element zu nehmen. Ein Schlüssel, der nur in manchen Elementen vorkommt, wird optional (archived?: boolean). Ein Schlüssel, dessen Werte sich zwischen den Elementen unterscheiden, bekommt einen Union-Type (license: string | null). Die Interfaces der Array-Elemente werden nach der Einzahl des Schlüssels benannt: repos → Repo, categories → Category. Gleiche Strukturen, die an verschiedenen Stellen vorkommen, werden nur einmal deklariert und wiederverwendet.

interface vs. type

Bei Objektstrukturen sind beide fast austauschbar. interface-Deklarationen lassen sich mit extends erweitern und durch erneutes Deklarieren zusammenführen, außerdem liefern sie oft klarere Fehlermeldungen. type-Aliase können dagegen Unions, Tupel und Mapped Types ausdrücken. Viele Teams verwenden Interfaces für Datenmodelle. Wähle, was zu deinen Lint-Regeln passt (z. B. @typescript-eslint/consistent-type-definitions).

Grenzen der Ableitung – prüfe die Ausgabe

Ein Beispiel zeigt nur, was vorhanden war. Ein Feld, das in deinem Beispiel null ist, wird als null typisiert. Passe es dann an den echten Typ an, z. B. string | null. Datumswerte kommen als ISO-Strings und werden als string typisiert, da JSON keinen Datumstyp kennt. Schlüssel, die keine gültigen Bezeichner sind, wie social-links, werden automatisch in Anführungszeichen gesetzt. Für die Laufzeitvalidierung von unsicheren Eingaben kombinierst du diese Typen mit einem Schema-Validator wie Zod. Bereinige dein Beispiel vorher mit dem JSON Formatter, oder konvertiere YAML-Konfigurationen mit YAML zu JSON, bevor du Typen generierst.

Auch gesucht als: json zu ts, json zu interface, typescript interface generator, json2ts, typescript typen aus json, json zu typescript konverter.

Passende Tools zu: JSON zu TypeScript

  • CSV zu JSON — Füge CSV oder TSV ein und erhalte ein JSON-Array aus Objekten.
  • SVG zu JSX Konverter — Füge ein SVG aus Figma, Illustrator oder einem Icon-Set ein und erhalte eine fertige React-Komponente (JSX oder TSX) mit einer sicheren Vorschau des Icons.
  • cURL zu Code — Füge einen curl-Befehl ein, z.
  • JSON-Schema-Validator — Füge ein Schema und etwas JSON ein, um genau zu sehen, welche Werte welche Regel verletzen, oder erzeuge ein Startschema aus Beispieldaten.

Häufige Fragen

Sollte ich für JSON-Daten interface oder type verwenden?
Für einfache Objektstrukturen funktionieren beide. Interfaces unterstützen Deklarations-Merging und extends, Type-Aliase decken zusätzlich Unions und Mapped Types ab. Wähle den Stil, den der Style Guide deines Projekts vorgibt. Der Schalter ändert die gesamte Ausgabe.
Wie werden optionale Eigenschaften erkannt?
In Arrays aus Objekten wird eine Eigenschaft, die in mindestens einem Element fehlt, mit ? als optional markiert. Du kannst außerdem alle nullable Eigenschaften über die Checkbox unter der Ausgabe optional machen.
Warum ist eine Eigenschaft als null typisiert?
Weil sie in jedem Beispiel, in dem sie vorkam, null war. Daher gibt es keine Information über ihren echten Typ. Ersetze null durch den erwarteten Typ, z. B. string | null, oder füge ein Beispiel ein, in dem der Wert ausgefüllt ist.
Kann das Tool auch tief verschachteltes JSON verarbeiten?
Ja. Jedes verschachtelte Objekt wird zu einem eigenen benannten Interface, das vom übergeordneten Interface referenziert wird. Gleiche Strukturen werden nur einmal deklariert.
Wird mein JSON an einen Server gesendet?
Nein. Die Typgenerierung läuft vollständig in deinem Browser, daher kannst du Antworten aus internen APIs bedenkenlos einfügen.
Kann ich JSON zu TypeScript als Web-App installieren und offline nutzen?
Ja. JSON zu TypeScript ist eine installierbare Web-App (PWA) – sie wird über Ihren Browser installiert und nicht aus einem App-Store heruntergeladen. Klicken Sie oben auf dieser Seite in Chrome oder Edge (Windows, macOS, Linux, ChromeOS) auf „App installieren“ oder verwenden Sie auf Android-Geräten „Teilen“ → „Zum Startbildschirm hinzufügen“ auf dem iPhone und iPad bzw. „Datei“ → „Zum Dock hinzufügen“ in Safari 17+ auf einem Mac. Die App öffnet sich dann in einem eigenen Fenster mit einem eigenen Symbol, und da sie vollständig in Ihrem Browser ausgeführt wird, funktioniert sie auch offline. Firefox auf dem Desktop kann keine Web-Apps installieren. So funktioniert die Installation.

Ähnliche Tools