Primitive e Oggetti
Tipi Primitivi
Zod supporta tutti i tipi primitivi standard.
```typescript import { z } from “zod”;
// Stringhe z.string(); z.string().email(); // Validazione specifica z.string().min(5); z.string().max(10); z.string().url(); z.string().uuid();
// Numeri z.number(); z.number().gt(5); // greater than z.number().gte(5); // greater than or equal z.number().lt(5); // less than z.number().lte(5); // less than or equal z.number().int(); // deve essere intero z.number().positive(); // > 0 z.number().nonnegative(); // >= 0
// Altri z.boolean(); z.undefined(); z.null(); z.void(); // accetta undefined z.any(); z.unknown(); ```
Oggetti
Gli schemi oggetto sono la base di qualsiasi API o form.
```typescript const User = z.object({ username: z.string(), age: z.number().optional(), // opzionale role: z.enum([“Admin”, “Guest”]), // enum isActive: z.boolean().default(true), // valore default }); ```
.shape
Puoi accedere alla forma dello schema:
```typescript User.shape.username; // => z.string() ```
.extend()
Puoi estendere uno schema esistente (simile all’ereditarietà delle interfacce):
```typescript const UserWithId = User.extend({ id: z.string().uuid() }); ```
.merge()
Puoi unire due schemi oggetto:
```typescript const BaseUser = z.object({ name: z.string() }); const UserRoles = z.object({ role: z.string() });
const MergedUser = BaseUser.merge(UserRoles); // { name: string, role: string } ```