Zod-Schema zu TypeScript-Typ
Konvertieren Sie Zod-Schemadefinitionen in TypeScript-Interfaces oder -Typen. Generieren Sie den genauen Typ, den z.infer für Ihr Schema erzeugen würde.
Zod-Schema zu TypeScript-Typ
Fügen Sie ein Zod-Schema ein — eine `z.object({...})`-Definition, optional einer `const` zugewiesen — und dieses Tool gibt das TypeScript-Interface oder Type-Alias aus, das `z.infer` dafür erzeugen würde. Es ist nützlich, wenn das Schema die Quelle der Wahrheit ist und Sie den entsprechenden statischen Typ ohne Build-Schritt oder CLI-Codegen benötigen: für schnelle Validitätsprüfungen beim Schreiben von Validierungscode, zur Dokumentation der API-Form aus einem Zod-Schema oder zum Portieren eines Schemas in eine Codebasis, die nur die Typen benötigt.
Die Ausgabeoptionen steuern die Form des generierten Codes. Wählen Sie zwischen einem `interface` und einem `type`-Alias (ein nicht-Objekt-Schema wie eine einfache Union oder ein String wird immer zu einem Type-Alias, da TypeScript-Interfaces nur Objektformen beschreiben können), und ob die Deklaration `export`iert ist. Optionale Felder können entweder als Fragezeichen (`field?: string`) oder als explizite `string | undefined`-Union dargestellt werden. Ein separater Schalter behält die Mitglieder von `z.enum` als literale Union bei, anstatt sie auf `string` zu reduzieren, und ein anderer verwandelt `.describe("...")`-Aufrufe in einen Docblock-Kommentar über jedem Feld.
Verschachtelte Objekte, Arrays, Tupel, Unions, Intersections, Records, Maps und Sets werden alle in ihre TypeScript-Äquivalente konvertiert, und häufige verkettete Aufrufe, die nur Laufzeit-Validierung hinzufügen — `.min()`, `.email()`, `.refine()`, `.default()` und ähnliche — werden erkannt und übersprungen, anstatt die Konvertierung zu unterbrechen. Rekursive Schemas, die mit `z.lazy(() => Schema)` erstellt wurden, werden wieder in einen sich selbst referenzierenden Typ aufgelöst, wenn die entsprechende `const` Teil der gleichen Eingabe ist. Deaktivieren Sie diese Option, um stattdessen `any` zu sehen. Windows- und Unix-Zeilenendungen werden auf die gleiche Weise behandelt, und die Statistik unter der Ausgabe meldet, wie viele Deklarationen und Felder generiert wurden.
Alles läuft in Ihrem Browser. Das Schema, das Sie einfügen, wird nie irgendwo hochgeladen, daher ist es sicher, es mit Validierungscode einer nicht veröffentlichten API zu verwenden. Kopieren Sie das Ergebnis, laden Sie es als `.txt`-Datei herunter oder senden Sie es direkt in ein anderes Tool, um damit weiterzuarbeiten.