Přeskočit na obsah

Zod schéma na TypeScript typ

Konvertuj Zod schéma na odpovídající TypeScript rozhraní nebo typ alias bez dalších kroků.

Vstup
Výstup

Zod schéma na TypeScript typ

Vložte Zod schéma — definici `z.object({...})`, volitelně přiřazenou k `const` — a tento nástroj vytvoří TypeScript rozhraní nebo typ alias, který by `z.infer` vytvořil. Je užitečné, když je schéma zdrojem pravdy a chcete odpovídající statický typ bez spuštění kroků buildu nebo CLI codegenu: pro rychlou kontrolu při psaní validačního kódu, pro dokumentaci tvaru API z jeho Zod schématu, nebo pro přenos schématu do kódové báze, která potřebuje pouze typy.

Volby výstupu řídí tvar generovaného kódu. Vyberte si mezi `interface` a typem `type` alias (schéma bez objektu, jako je pouhá unie nebo řetězec, se vždy stane typem alias, protože rozhraní TypeScript mohou popisovat pouze tvary objektů), a zda je deklarace `export`ovaná. Volitelná pole se mohou vykreslit jako otazník (`field?: string`) nebo jako explicitní unie `string | undefined`. Samostatný přepínač udržuje členy `z.enum` jako literální unii místo jejich sbalení na `string`, a další změní volání `.describe("...")` na blok komentářů nad každým polem.

Vnořené objekty, pole, n-tice, unie, průsečíky, záznamy, mapy a množiny se všechny převádějí na jejich TypeScript ekvivalenty, a běžná zřetězená volání, která pouze přidávají validaci za běhu — `.min()`, `.email()`, `.refine()`, `.default()` a podobně — jsou rozpoznána a přeskočena místo přerušení převodu. Rekurzivní schémata vytvořená pomocí `z.lazy(() => Schema)` se řeší zpět na typ odkazující sám na sebe, když se odpovídající `const` nachází ve stejném vstupu; vypněte tuto volbu, chcete-li místo toho vidět `any`. Konce řádků Windows a Unix se zpracovávají stejným způsobem, a počítadlo pod výstupem hlásí, kolik deklarací a polí bylo vygenerováno.

Všechno běží v tvém prohlížeči. Schéma, kterou vložíš, se nikdy nikam nenahraje, takže je bezpečné ji používat s validačním kódem neveřejného API. Zkopíruj výsledek, stáhni ho jako soubor `.txt`, nebo jej pošli přímo do dalšího nástroje, abys pokračoval v práci.

Časté dotazy

Kterou verzi Zodu to podporuje?
Běžné funkce factory a zřetězené metody ze Zodu v3 a v4 — objekty, pole, unie, záznamy a zbytek. Vlastní transformace a rafinace jsou analyzovány a přeskočeny, protože jejich vliv na typ nelze odvodit z textu schématu samotného.
Co se stane s `.refine()`, `.transform()` a podobnými voláními?
Jsou rozpoznána a ignorována: nástroj si uchová typ, který mělo schéma před voláním, protože nemůže vyhodnotit libovolnou funkci, aby věděl, jak transformace změní tvar.
Zvládne schéma rozděleného na více deklarací const?
Ano. Každé deklarované schéma ve vstupu je převedeno na své vlastní rozhraní nebo typ v pořadí, v jakém se objevují, takže sdílené podschéma odkazované jménem v jiném se správně vyřeší.
Proč se moje schéma zobrazuje jako chyba místo převodu?
Obvykle chybí uzavírací bracket, závorka nebo uvozovka někde v vloženém kódu. Ověřte, že každé `z.object({ ... })` a doslova pole jsou správně zavřeny.
Je moje schéma nahrána někde?
Ne. Převod běží zcela v tvém prohlížeči — tvoje schéma nikdy neopustí tvoje zařízení.