Schema Zod la tip TypeScript
Convertiți o definiție de schemă Zod în interfața TypeScript sau aliasul de tip corespunzător. Ideal pentru verificarea codului de validare.
Schema Zod la tip TypeScript
Lipiți o schemă Zod — o definiție `z.object({...})`, opțional atribuită unei `const` — și acest instrument generează interfața TypeScript sau aliasul de tip pe care `z.infer` l-ar produce. Este util atunci când o schemă este sursa de adevăr și doriți tipul static corespunzător fără a rula o etapă de compilare sau CLI de codegen: pentru o verificare rapidă în timp ce scrieți cod de validare, pentru a documenta forma API-ului din schema Zod, sau pentru a importa o schemă într-un proiect care are nevoie doar de tipuri.
Opțiunile de ieșire controlează forma codului generat. Alegeți între o `interface` și un alias `type` (o schemă non-obiect, cum ar fi o uniune simplă sau string, devine întotdeauna un alias de tip, deoarece interfețele TypeScript pot descrie doar forme de obiecte), și dacă declarația este `export`ată. Câmpurile opționale pot apărea ca semn de întrebare (`câmp?: string`) sau ca o uniune explicită `string | undefined`. O opțiune separată păstrează membrii `z.enum` ca o uniune literală în loc să-i pună într-un string, iar alta transformă apelurile `.describe("...")` în comentarii docblock deasupra fiecărui câmp.
Obiectele imbricate, array-urile, tuplurile, uniunile, intersecțiile, recordurile, mapele și seturile se convertesc în echivalentele TypeScript, iar apelurile în lanț comune care doar adaugă validare la runtime — `.min()`, `.email()`, `.refine()`, `.default()` și altele — sunt recunoscute și ignorate în loc să rupă conversia. Scheme recursive construite cu `z.lazy(() => Schema)` sunt rezolvate înapoi la un tip auto-referențiat când const-ul corespunzător face parte din aceeași intrare; dezactivați opțiunea pentru a vedea `any`. Terminațiile de linie Windows și Unix sunt gestionate identic, iar totalul sub ieșire raportează câte declarații și câmpuri au fost generate.
Totul rulează în browserul dvs. Schema pe care o lipiți nu este niciodată trimisă nicăieri, deci este sigur de utilizat cu codul de validare al API-ului nelansat. Copiați rezultatul, descărcați ca fișier `.txt` sau trimiteți direct către alt instrument pentru a continua lucrul.