JSON to TypeScript and Zod

JSON
TypeScript
export interface Root {
  id: number;
  username: string;
  email: string;
  website: string;
  createdAt: string;
  verified: boolean;
  rating: number;
  roles: string[];
  profile: Profile;
  orders: Order[];
  stock: Record<string, StockItem>;
}

export interface Profile {
  displayName: string;
  avatar_url: null;
  bio: string;
}

export interface Order {
  id: string;
  total: number;
  items: number;
  coupon?: string;
}

export interface StockItem {
  qty: number;
}
Cómo se infieren los tipos y límites
  • Un campo es opcional si falta en alguno de los objetos del mismo array o de las muestras.
  • Los tipos se deducen solo de los datos: si un campo siempre vale null, el tipo será null. Añade más ejemplos para afinarlo.
  • Un objeto se trata como diccionario cuando todas sus claves son números, UUID u ObjectId.
  • El resultado se verifica compilando con tsc y validando con Zod 4 los ejemplos de prueba; la sintaxis de Zod 3 es la documentada oficialmente.
  • Todo ocurre en tu navegador: el JSON no se envía a ningún servidor.

⚡ by MACM · miguelacm.es