Ugrás a tartalomhoz

Zod séma TypeScript típusra

A Zod séma definícióját a megfelelő TypeScript interfészre vagy típusra konvertálja. Számos kimeneteli opció és támogatott sémaelem.

Bemenet
Kimenet

Zod séma TypeScript típusra

Illesszen be egy Zod sémát — egy `z.object({...})` definícióját, opcionálisan egy `const`-hoz rendelve — és ez az eszköz kimenete a TypeScript interfész vagy típusselv, amely a `z.infer` előhozna belőle. Hasznos, amikor a séma az igazság forrása, és szeretné a megfelelő statikus típust, anélkül hogy futtatna egy build lépést vagy egy codegen parancssori eszközt: gyors hibaellenőrzéshez validációs kód írása közben, egy API alakjának dokumentálásához a Zod sémájából, vagy egy séma áttelepítéséhez olyan kódbázisba, amely csak típusokat igényel.

A kimeneti opciók szabályozzák a generált kód alakját. Válasszon az `interface` és a `type` alias között (egy nem-objektum séma, például egy meztelen unió vagy string, mindig típusselv lesz, mivel a TypeScript interfészek csak objektumformákat tudnak leírni), és hogy a deklaráció `export`-álva van-e. Az opcionális mezők vagy kérdőjelként (`field?: string`) vagy explicit `string | undefined` unióként renderelhetők. Egy külön kapcsoló megtartja a `z.enum` tagjait szó szerinti unióként ahelyett, hogy `string` szintjére zsugorítaná őket, és egy másik a `.describe("...")` hívásokat docblock megjegyzésekké alakítja az egyes mezők fölött.

A beágyazott objektumok, tömbök, sorpárok, uniók, metszések, rekordok, térképek és halmazok mindegyike a TypeScript megfelelőire konvertálódik, és a közös láncolható hívások, amelyek csak futtatási idejű validációt adnak hozzá — `.min()`, `.email()`, `.refine()`, `.default()` és hasonlók — felismerésre kerülnek és kihagyásra az átalakítás megtöréséhez helyett. A `z.lazy(() => Schema)` segítségével készített rekurzív sémák önmagára hivatkozó típusra kerülnek feloldásra, ha a megfelelő `const` ugyanabban a bemenetben van; kapcsolja ki ezt az opciót, hogy helyette `any` legyen. A Windows és Unix vonal végei ugyanúgy kezelésre kerülnek, és az output alatti számlálás azt jelzi, hogy hány deklaráció és mező lett generálva.

Everything runs in your browser. The schema you paste is never uploaded anywhere, so it is safe to use with an unreleased API's validation code. Copy the result, download it as a `.txt` file, or send it straight into another tool to keep working on it.

Gyakori kérdések

Mely Zod verziókat támogat?
A Zod v3 és v4 közös gyárfüggvényei és láncolható metódusai — objektumok, tömbök, uniók, rekordok és a többi. Egyéni transzformációk és finomítások elemzésre és kihagyásra kerülnek, mivel hatásuk a típusra nem vonható le a séma szövegéből egyedül.
Mi történik a .refine(), .transform() és hasonló hívásokkal?
Felismerésre és figyelmen kívül hagyásra kerülnek: az eszköz megtartja a típust, amely a hívás előtt volt a sémán, mivel nem tudja értékelni egy tetszőleges függvényt annak ismeretében, hogy egy transzformáció hogyan változtatja meg az alakot.
Kezelhet-e több const deklarációra felosztott sémákat?
Igen. A bemenetben deklarált minden séma a saját interfészre vagy típusara kerül konvertálásra, a megjelenés sorrendjében, tehát egy megosztott alsémára, amelyre egy másikban az nevet adja meg, helyesen feloldódik.
Miért mutat hibát a sémám ahelyett, hogy konvertálódna?
Általában egy hiányzó záró zárójel, zárójelezés vagy idézet valahol a beillesztett kódban. Ellenőrizze, hogy minden z.object({ ... }) és tömb szó szerinti megfelelően lezárult-e.
Van-e a sémám valahova feltöltve?
Nem. Az átalakítás teljes egészében a böngészőjében fut — a séma soha nem hagyja el az eszközét.