Werkzeug finden

↑↓ navigieren Enter öffnen

Suchen Sie nach der Aufgabe, wenn Sie den Namen nicht kennen.

JSON zu TypeScript: Interfaces und Typen erzeugen

Nur lokal

Erzeuge TypeScript-Interfaces oder Typ-Aliase aus einer JSON-Probe direkt im Browser. Bei Arrays bestimmt nur das erste Element den abgeleiteten Elementtyp. Prüfe fehlende Felder, gemischte Arrays und null anhand des API-Vertrags, bevor du die Deklarationen übernimmst.

Geprüft · Aktualisiert · Kostenlos · Kein Konto nötig

JSON zu TypeScript
JSON-Eingabe0 Zeichen
TypeScript-Ausgabe
Die JSON-Probe wird lokal in dieser Registerkarte verarbeitet.

Sechs konkrete Fälle der Typableitung

Die Tabelle fasst die tatsächlichen Ergebnisse der vorhandenen Ableitung zusammen. Die vollständigen Interface- und Typ-Ausgaben sind als JSON-Datensatz verfügbar. Die Eingaben sind Testdaten, keine vollständigen API-Verträge.

JSON-EingabeBeobachtetes ErgebnisFolgerung
{"id":42,"owner":{"name":"Ada"}}Root und OwnerVerschachtelte Objekte werden benannt.
[{"id":1,"name":"Ada"},{"id":2}]name: stringFehlen im zweiten Eintrag macht das Feld nicht optional.
[1,"two",true]number[]Nur der erste Eintrag liefert den Elementtyp.
{"nickname":null}nickname: nullKein automatischer string | null-Typ.
{"items":[]}items: unknown[]Keine Form eines Elements vorhanden.
{"id":9007199254740993}JSON.parse liest 9007199254740992Eine Ziffer geht bereits vor der Typableitung verloren.

Was kann eine JSON-Probe über TypeScript-Typen aussagen?

Der Konverter beschreibt die Werte einer konkreten JSON-Probe als TypeScript-Deklarationen. Die Probe zeigt nicht alle möglichen Antworten einer API. Fehlende Felder, erlaubte Alternativen und optionale Eigenschaften müssen aus dem Vertrag oder weiteren Daten geprüft und bei Bedarf manuell ergänzt werden.

Ableitung als Ausgangspunkt, Vertrag als Maßstab

Wähle Interfaces oder Typ-Aliase entsprechend deinem Projekt. Das Werkzeug liest verschachtelte Objekte, nutzt bei Arrays aber nur den ersten Eintrag. Es führt keine Prüfung aller Einträge durch und erzeugt weder Zod-Schemas noch eine Laufzeitvalidierung.

Wie wird es verwendet?

  1. Füge eine gültige JSON-Probe mit den benötigten Feldern ein.
  2. Wähle Interfaces oder Typ-Aliase und starte die Umwandlung.
  3. Vergleiche das Ergebnis mit dem API-Vertrag, ergänze erforderliche Union- oder optionale Typen und kopiere oder lade die Deklarationen herunter.

Echtes Ein- und Ausgabebeispiel

Ein verschachteltes Objekt als Interface

Eingabe

{"id":42,"owner":{"name":"Ada"}}

Ausgabe

interface Root {
  id: number;
  owner: Owner;
}

interface Owner {
  name: string;
}

type Payload = Root;

Root verweist auf Owner. Die Deklaration beschreibt die Beispielwerte; sie beweist nicht, dass jede spätere Antwort dieselben Felder oder Typen besitzt.

Häufige Fehler und Korrekturen

SymptomWahrscheinliche UrsacheKorrektur
Ein später fehlendes Feld ist weiterhin erforderlichNur das erste Array-Element bestimmt die Struktur. Weitere Einträge ändern die Ableitung nicht.Prüfe den API-Vertrag. Ergänze ? nur dann manuell, wenn das Feld tatsächlich fehlen darf.
Ein gemischtes Array wird als number[] ausgegebenDer erste Wert ist eine Zahl; spätere Zeichenfolgen oder Wahrheitswerte werden nicht zur Typableitung herangezogen.Ersetze den Elementtyp bei Bedarf durch den erlaubten Union-Typ, etwa (number | string | boolean)[], und prüfe den Vertrag.
Eine große numerische Kennung verändert sichJSON.parse verwendet JavaScript-Zahlen und kann ganze Zahlen außerhalb des sicheren Bereichs runden.Übermittle Kennungen an der Quelle als Zeichenfolge, wenn der Vertrag dies vorsieht. Nachträgliche Anführungszeichen stellen verlorene Ziffern nicht wieder her.

Deklarationen ersetzen keine Laufzeitvalidierung

TypeScript-Typen prüfen keine empfangenen Daten zur Laufzeit. null wird als null abgeleitet, ein leeres Array als unknown[]. Lokale Verarbeitung bedeutet außerdem keine verlustfreie Zahlendarstellung: JSON.parse kann große Zahlen bereits vor der Ableitung runden.

Standards und Implementierungsquellen

JSON → TypeScript — FAQ

Werden optionale Felder über alle Array-Einträge erkannt?

Nein. Bei [{"id":1,"name":"Ada"},{"id":2}] wird name weiterhin als erforderlich erzeugt. Prüfe, ob der API-Vertrag das Fehlen erlaubt, und ergänze gegebenenfalls ?.

Welche Typen entstehen für null und leere Arrays?

null erzeugt den Typ null, keine automatisch ergänzte Union wie string | null. Ein leeres Array erzeugt unknown[], weil kein Element zur Untersuchung vorliegt.

Prüft ein Interface späteres JSON?

Nein. Interfaces und Typ-Aliase beschreiben Typen für die Entwicklungszeit. Eingehende Daten brauchen eine gesonderte Laufzeitprüfung, wenn du ihre Struktur sicherstellen musst.

Werden JSON-Werte hochgeladen oder verlustfrei gelesen?

Die Verarbeitung findet lokal statt und legt keine Eingabedaten in der URL ab. Der verwendete JSON.parse kann große numerische Werte runden; das Werkzeug ist kein verlustfreier JSON-Parser.

Was wurde geändert?

Deutsche Erklärung und Bedienung ergänzt; sechs tatsächliche Fälle in beiden Deklarationsmodi samt Grenzen dokumentiert.

Wer pflegt dieses Werkzeug?

KL
KitLumi EngineeringKitLumi Engineering pflegt Verhalten, Tests, Beispiele und Datenschutzhinweise.