100 % lokal — Ihre Daten verlassen nie Ihren Browser

JSON in Flow — Typ-Aliase für Ihr Projekt

Ein JSON-Beispiel in Flow-Typ-Aliase verwandeln. Verschachtelte Objekte bekommen eigene Namen — aus einem Payload werden Typen, die man importieren kann.

Sofort Privat Null Cookies

JSON-Eingabe

Flow-Ausgabe

Was dieses Werkzeug tut

Aus einer JSON-Probe werden Flow-Typaliasse, einer je Objekt.

{ "id": 1, "name": "Ada", "address": { "city": "Paris" } }
export type Root = {
  id: number,
  name: string,
  address: Address,
};

export type Address = {
  city: string,
};

Eine Liste an der Wurzel wird ebenfalls benannt:

export type Users = UsersItem[];

Dieser Alias fehlte: der Elementtyp kam allein heraus, und der eingestellte Wurzelname führte nirgendwohin. Beim Schreiben dieser Seite gefunden und behoben.

Die Exaktheit steht uns nicht zu

Die Ausgabe schreibt { … }, weder {| … |} noch ein abschließendes .... Mit exact_by_default=true, das neuere Flow-Versionen einschalten, ist dieses Objekt exakt: eine zusätzliche Eigenschaft ist ein Fehler. Ohne das Flag ist es inexakt und zusätzliche Eigenschaften sind erlaubt.

Beides lässt sich vertreten, und der Unterschied ist eine projektweite Entscheidung, festgehalten in Ihrer .flowconfig. Das Zeichen so oder so zu schreiben, überginge diese Entscheidung im Namen einer Probe, die nichts dazu sagt — der erzeugte Typ folgt daher einfach Ihrer Konfiguration.

mixed, nicht any

Ein leeres Array ergibt mixed[]; ein Wert unbekannter Form ergibt mixed. Der Sinn von mixed ist, dass Flow Sie vor der Nutzung zum Eingrenzen zwingt — genau das wollen Sie, wenn der Typ wirklich unbekannt ist. any sähe in der Ausgabe aufgeräumter aus und schaltete den Prüfer dort ab, wo die Daten am wenigsten verstanden sind.

Was ein Dokument nicht sagen kann

Nichts ist optional: name: string heißt vorhanden, weil die Probe es enthielt. Fehlt das Feld manchmal, lautet die Änderung name?: string, und string | null, wenn es null sein kann — die Probe belegt nur, was in ihr steht.

Ein gemischtes Array wird ein Union-Typ, (number | string)[], der die Probe genau beschreibt und weiter oder enger als Ihre echten Daten sein mag. Und ein Schlüssel, der kein gültiger Bezeichner ist, behält seine Anführungszeichen: "content-type": string.

Datenschutz ab Werk

Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.

Häufige Fragen

Sind die erzeugten Objekte exakt oder inexakt?
Weder noch steht da: die Ausgabe nutzt schlicht `{ … }`, also entscheidet Ihre `.flowconfig`. Mit `exact_by_default=true` — der Einstellung neuerer Flow-Versionen — sind diese Objekte exakt, ohne sie inexakt. `{| |}` oder ein abschließendes `...` zu schreiben, überginge eine projektweite Wahl, von der die Probe nichts weiß.
Warum `mixed` und nicht `any`?
Weil `mixed` das ehrliche ist. Ein leeres Array sagt nichts über seine Elemente, und `mixed` sagt genau das — und zwingt Sie zugleich, vor der Nutzung einzugrenzen. `any` sagte dasselbe und ließe dann jeden Fehler stillschweigend durch: ein unbekannter Typ ist kein Grund, den Prüfer abzuschalten.
Sollte man heute noch ein Projekt in Flow beginnen?
Das ist Ihre Entscheidung, und das Werkzeug taugt für beide. Flow lebt und wird benutzt, vor allem in Codebasen, die älter sind als TypeScripts Aufstieg, oder nahe an Metas Ökosystem. Wählen Sie heute ohne solche Bindung, hat TypeScript die größere Sammlung an Typdefinitionen — und diese Seite wandelt auch dorthin um.

Ähnliche Konverter