Preskočiť na obsah

Zod schéma do TypeScript typu

Konvertuj Zod schému na zodpovedajúci TypeScript interface alebo typ alias bez ďalších krokov.

Vstup
Výstup

Zod schéma do TypeScript typu

Vložte Zod schému — definíciu `z.object({...})`, voliteľne priradenú k `const` — a tento nástroj vygeneruje TypeScript interface alebo typ alias, ktorý by `z.infer` vyprodukoval. Je užitočný, keď je schéma zdrojom pravdy a chcete zodpovedajúci statický typ bez spustenia krokov buildu alebo CLI codegenu: na rýchlu kontrolu pri písaní validačného kódu, na dokumentáciu tvaru API z jeho Zod schémy, alebo na prenos schémy do kódovej základne, ktorá potrebuje iba typy.

Možnosti výstupu riadia tvar generovaného kódu. Vyberte si medzi `interface` a `type` aliasem (schéma bez objektu, ako je holá unia alebo reťazec, sa vždy stane typom alias, pretože TypeScript interfaces môžu opisovať iba tvary objektov), a či je deklarácia `export`ovaná. Voliteľné polia sa môžu vykresliť buď ako otáznik (`field?: string`) alebo ako explicitná unia `string | undefined`. Samostatný prepínač udržiava členy `z.enum` ako literálovú uniju namiesto ich zbalenia na `string`, a ďalší zmení `.describe("...")` volania na blok komentárov nad každým poľom.

Vnorené objekty, polia, n-tice, unie, priesečníky, záznamy, mapy a množiny sa všetky konvertujú na ich TypeScript ekvivalenty, a bežné reťazené volania, ktoré iba pridávajú validáciu za behu — `.min()`, `.email()`, `.refine()`, `.default()` a podobne — sú rozpoznané a preskočené namiesto prerušenia konverzie. Rekurzívne schémy vytvorené s `z.lazy(() => Schema)` sú riešené späť na typ odkazujúci sám na seba, keď sa zodpovedajúca `const` nachádza v tom istom vstupe; vypnite túto možnosť, aby ste namiesto toho videli `any`. Konce riadkov Windows a Unix sa spracúvavajú rovnakým spôsobom, a počítadlo pod výstupom hlási, koľko deklarácií a polí bolo vygenerovaných.

Všetko beží v tvojom prehliadači. Schéma, ktorú vložíš, sa nikdy nikam nenahrá, takže je bezpečné ju používať s validačným kódom neverejného API. Skopíruj výsledok, stiahni ho ako súbor `.txt`, alebo ho pošli priamo do ďalšieho nástroja na pokračovanie v práci.

Časté otázky

Ktorú verziu Zodu to podporuje?
Bežné funkcie factory a reťazené metódy zo Zodu v3 a v4 — objekty, polia, unie, záznamy a zvyšok. Vlastné transformácie a výraznosti sú analyzované a preskočené, pretože ich vplyv na typ nemožno odvodiť z textu schémy samého.
Čo sa stane s `.refine()`, `.transform()` a podobnými volaniami?
Sú rozpoznané a ignorované: nástroj si uchová typ, ktorý mala schéma pred volaním, pretože nemôže vyhodnotiť ľubovoľnú funkciu, aby zistil, ako transformácia zmení tvar.
Môže to spracovať schému rozdelenú na viac deklarácií const?
Áno. Každá deklarovaná schéma v vstupe sa konvertuje na svoj vlastný interface alebo typ, v poradí, v akom sa objavuje, takže zdieľaná podschéma odkazovaná menom v inej sa správne vyrieši.
Prečo sa moja schéma zobrazuje ako chyba namiesto konverzie?
Zvyčajne chýba uzatváracia zátvorka, zátvorka alebo úvodzovka niekde v vloženom kóde. Skontroluj, že každá `z.object({ ... })` a doslova pole sú správne uzavretí.
Nahraje sa niekde moja schéma?
Nie. Konverzia beží úplne v tvojom prehliadači — tvoja schéma nikdy neopúšťa tvoje zariadenie.