Command Palette

Search for a command to run...

JS

JSON zu TypeScript

Generieren Sie TypeScript-Schnittstellen aus jedem JSON-Beispiel. Verschachtelte Typen ableiten, Arrays von Objekten in einer einzigen Schnittstelle zusammenführen, nullbare und fehlende Schlüssel markieren und einen sauberen exportierbaren Code ausgeben. 100% clientseitig.

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.

Eine API-Antwort von Hand einzugeben ist mühsam und fehleranfällig auf eine bestimmte Art und Weise: Sie geben ein, was Sie *denken* der Endpunkt zurückgibt, nicht das, was er zurückgegeben hat Felder, die Sie nie bemerkt haben, werden weggelassen, eine ganze Zahl, die manchmal null ist, wird als 10number` eingegeben, 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 vom Server gesendete.

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.

Eine schnelle Möglichkeit zu sehen, was Ihnen die JSON-zu-TypeScript-Konvertierung liefert, ist das integrierte Sample Drücken Sie Sample laden und dann generieren Sie Sie erhalten drei JSON-zu-TypeScript-Schnittstellen: `Root`, `Owner` und `Release` Die zweite Version hat keinen 1incelnotes`-Schlüssel, daher liest die zusammengelegte `-Schnittstelle 10Release`?: string`, and `retiredAt` ist im einzigen Datensatz null, also wird daraus `At?: null`. Das ist das ehrliche Ergebnis, denn eine Null gibt keinen Beweis für den echten Typ. JSON in Typezu konvertieren in TypeScript für einen echten Endpunkt, fügen Sie mehrere Datensätze ein, fügen Sie mehrere Datensätze ein, damit die Inferenz mehr zum Vergleichen hat.

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?

  1. 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.

  2. 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).

  3. 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.

  4. 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

Fügen Sie Ihren JSON in den Editor ein, setzen Sie den Namen des Root-Typs und drücken Sie Generate Das Tool leitet den Typ jedes Schlüssels ab, extrahiert verschachtelte Objekte in ihre eigenen Schnittstellen und gibt Code aus, den Sie direkt in eine ts-Datei kopieren können Kein Signup und kein Upload - Inferenz läuft in Ihrem Browser.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!

json to typescriptjson to typescript interfaceconvert json to typescriptjson to interface generatortypescript type generatorjson to typegenerate typescript from jsonapi response typestypescript interface from apijson schema to typescript