Guide Développeur : Générateur de Schémas Zod depuis JSON (Validation Runtime TypeScript)
Déduisez et générez des schémas Zod TypeScript, des définitions de types et des règles de validation imbriquées à partir de données JSON brutes.
import { z } from "zod";
// --- Inferred Nested Sub-Schemas ---
OrderCustomerSchema = z.object({
id: z.number().int(),
fullName: z.string(),
email: z.string().email(),
phone: z.string(),
tier: z.string(),
loyaltyPoints: z.number().int(),
});
OrderShippingAddressCoordinatesSchema = z.object({
latitude: z.number(),
longitude: z.number(),
});
OrderShippingAddressSchema = z.object({
street: z.string(),
suite: z.string(),
city: z.string(),
state: z.string(),
postalCode: z.string(),
country: z.string(),
coordinates: OrderShippingAddressCoordinatesSchema,
});
OrderItemsItemSchema = z.object({
sku: z.string(),
title: z.string(),
quantity: z.number().int(),
unitPrice: z.number(),
discount: z.number().nullable(),
tags: z.array(z.string()),
inStock: z.boolean(),
});
OrderPaymentSummarySchema = z.object({
currency: z.string(),
subtotal: z.number().int(),
tax: z.number(),
shippingFee: z.number().int(),
grandTotal: z.number(),
transactionRef: z.string(),
status: z.string(),
});
// --- Root Schema Definition ---
OrderSchema = z.object({
orderId: z.string().uuid(),
orderNumber: z.string(),
createdAt: z.string().datetime(),
isFulfilled: z.boolean(),
customer: OrderCustomerSchema,
shippingAddress: OrderShippingAddressSchema,
items: z.array(OrderItemsItemSchema),
paymentSummary: OrderPaymentSummarySchema,
});
// --- Inferred TypeScript Types ---
OrderCustomer = z.infer<typeof OrderCustomerSchema>;
OrderShippingAddressCoordinates = z.infer<typeof OrderShippingAddressCoordinatesSchema>;
OrderShippingAddress = z.infer<typeof OrderShippingAddressSchema>;
OrderItemsItem = z.infer<typeof OrderItemsItemSchema>;
OrderPaymentSummary = z.infer<typeof OrderPaymentSummarySchema>;
Order = z.infer<typeof OrderSchema>;Inférence AST 100% Côté Client
L'analyse syntaxique du JSON et la génération des schémas Zod s'exécutent entièrement dans votre navigateur sans transfert réseau.
Typage Complet TypeScript et Zod v3
Produit des définitions z.object(), z.array(), détection d'unions et inférence de types statiques z.infer prêtes pour la production.
Règles Avancées de Formats et Coercition
Détection automatique des emails, UUIDs, dates ISO et URLs avec un niveau de strictness entièrement paramétrable.