00
:
00
:
00
:
00
Corso SEO AI - Usa SEOEMAIL al checkout per il 30% di sconto

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 } ```