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.