Was ist der JSON-zu-TypeScript-Konverter?

Der JSON-zu-TypeScript-Konverter liest einen Beispiel-JSON-Wert - eine API-Antwort, eine Konfigurationsdatei, einen Datenbankdatensatz - und schreibt die TypeScript-Schnittstellen, die ihn beschreiben Verschachtelte Objekte werden zu eigenen benannten Schnittstellen, Arrays von Objekten werden zu einer Einzelelementschnittstelle anstatt zu einer ausufernden Vereinigung zusammengeführt, und Schlüssel, die in einigen Datensätzen null sind oder fehlen, sind optional markiert Sie fügen Daten ein, die Sie bereits haben; Sie erhalten Typen, die Sie sonst handschreiben würden.
Das Eingeben einer API-Antwort von Hand ist auf eine bestimmte Weise mühsam und fehleranfällig: Sie geben ein, was Sie * denken *, der Endpunkt gibt zurück und nicht das, was es tatsächlich zurückgegeben hat. Felder, die Sie nie bemerkt haben, werden weggelassen, eine ganze Zahl, die manchmal als "Nummer" eingegeben wird, und der Fehler wird zur Laufzeit in der Produktion und nicht in Ihrem Editor angezeigt. Das Generieren von Typen direkt aus einer echten Nutzlast schließt diese Lücke, da die Form, gegen die Sie kompilieren, die Form ist, die der Server tatsächlich gesendet hat.
Alles läuft in Ihrem Browser Die Inferenz-Engine ist dependenzfreies TypeScript, kein Wrapper um einen Remote-Dienst, daher verlassen Nutzlasten - die routinemäßig Zugriffstoken, Kundendatensätze und interne IDs tragen - niemals die Seite Wählen Sie Schnittstellen oder geben Sie Aliase ein, schalten Sie das Schlüsselwort „`export` und die Modifikatoren „`only`" um, wählen Sie Ihre Einrückungsbreite aus, kopieren Sie dann die Ausgabe oder laden Sie eine „ts-Datei herunter.
Die generierten Schnittstellen beschreiben das von Ihnen bereitgestellte Sample, nicht die von Ihnen aufgerufene API, und diese Unterscheidung ist das ganze Risiko Ein Feld, das zufällig in jedem Objekt Ihrer Probe vorhanden ist, wird auch dann als erforderlich markiert, wenn der Server es manchmal weglässt, und ein Feld, das in der Stichprobe null ist, kann nicht von einem immer nullten Feld unterschieden werden Leere Arrays sind der klarste Fall: Ein Array ohne Elemente gibt keine Auskunft darüber, was es enthält Die Array-Zusammenführung hilft hier, indem jedes Objekt in einer Liste in einer Schnittstelle zusammengefasst und Schlüssel markiert werden, die in einigen Einträgen fehlen, als optional, so dass ein größeres und vielfältigeres Sample einen ehrlicheren Typ erzeugt. Wo die API-Dokument oder OpenAPI-Dokument hat, generieren Sie stattdessen daraus ein undokumentieren Sie dieses für die Untersuchung einer Antwort verwenden.
Wie verwende ich den JSON-zu-TypeScript-Konverter?
Füge deinen JSON ein
Löschen Sie eine API-Antwort, eine Fixture-Datei oder einen JSON-Wert. Laden Sie zuerst das Beispiel, wenn Sie sehen möchten, wie verschachtelte Objekte, Arrays und NULL-Felder behandelt werden.
Benennen Sie den Wurzeltyp
Legen Sie den Namen des Root-Typs fest - normalerweise die Ressource, z. B. Benutzer oder Rechnung. Verschachtelte Schnittstellen werden automatisch aus ihrem Schlüssel benannt, wobei Array-Elementnamen singularisiert werden (Veröffentlichungen werden zu Release).
Wählen Sie Ihren Ausgabestil
Wählen Sie Schnittstelle oder Alias eingeben, entscheiden Sie, ob jede Deklaration exportiert werden soll, fügen Sie schreibgeschützte Modifikatoren hinzu, wenn Ihre Codebasis unveränderliche Formen bevorzugt, und setzen Sie den Einzug auf 2 oder 4 Leerzeichen.
Generieren, dann kopieren oder herunterladen
Drücken Sie Generieren. Überprüfen Sie die abgeleiteten Optionen und Gewerkschaften und kopieren Sie den Code in Ihre Zwischenablage oder laden Sie ihn als .ts-Datei herunter, die zum Ablegen in Ihrem Typenordner bereit ist.
Hauptmerkmale
Schachtelungsinterface-Extra
Jedes verschachtelte Objekt wird zu einer eigenen, wiederverwendbaren Schnittstelle anstelle einer anonymen inline-Form, sodass Sie die inneren Typen unabhängig importieren und referenzieren können.
Smart Array-Zusammenführung
Ein Array von Objekten wird zu einer Elementschnittstelle zusammengeführt. In einigen Datensätzen vorhandene Schlüssel, andere werden optional, so verhält sich genau das richtige Paginieren der API-Daten.
Nullbare Handhabung, die Sie steuern
Wählen Sie aus, ob ein Nullwert bedeutet, dass der Schlüssel optional ist oder ob NULL zur Union gehört. Beide Konventionen sind üblich, das Tool erzwingt Ihre Codebasis nicht.
Schnittstellen oder Typ-Aliase
Geben Sie "Interface User {}" oder "Type user = {}" an, um Ihren vorhandenen Flußregeln zu entsprechen, wobei optionale "Export" - und "ReadOnly" -Modifikatoren über jede Deklaration hinweg konsistent angewendet werden.
Frequently Asked Questions
Related Tools
JSON Flattener
Flatten nested JSON into single-level dot-notation keys, or unflatten dotted keys back into nested objects and arrays. Lossless round trip. 100% client-side.
JSON Schema Generator
Generate a JSON Schema from any JSON sample. Infers types, merges arrays of objects into one item schema, derives required fields, and detects date-time, email, uri, and uuid formats. Draft-07 and 2020-12 output. 100% client-side.
JSON to Go Struct
Convert JSON into Go struct definitions with json tags. Nested objects become inline structs, arrays of objects are merged, and field names follow Go conventions. Runs client-side.
JSONPath Tester
Test JSONPath expressions against any JSON and see the matched values and their paths instantly. Supports wildcards, recursive descent, slices, and filters. 100% client-side.
Comments
0 comments
No comments yet. Be the first to share your thoughts!