JSON a TypeScript

Pegue JSON y obtenga interfaces de TypeScript y un esquema Zod equivalente.

Funciona en local · no se sube nada
JSON

Qué hace

Pegue una muestra de JSON, como una respuesta de API de su backend ASP.NET Core o el contenido de un webhook, y obtenga declaraciones de TypeScript que puede añadir directamente a un proyecto frontend. La salida se actualiza mientras escribe, y una segunda pestaña muestra el mismo modelo como esquema Zod para la validación en tiempo de ejecución.

Cómo deduce los tipos

  • Se examinan todos los elementos del array, no solo el primero. Una clave que falta en algunos elementos pasa a ser opcional (name?: string). Una clave que a veces es null pasa a ser string | null.
  • Los arrays mixtos se convierten en uniones, p. ej. (string | number)[]. Un array vacío se convierte en unknown[].
  • Las estructuras idénticas se declaran una sola vez. shippingAddress y billingAddress con las mismas propiedades comparten una única interface Address.
  • Los objetos con ID como claves ({"101": {...}, "102": {...}}) se convierten en Record<string, T>.
  • Salida siempre válida: los nombres de propiedad que no son identificadores ("first-name", "2fa") se ponen entre comillas. Los nombres de tipo van en PascalCase y en singular para los elementos de arrays. Los nombres que ocultarían tipos integrados como Date o Error reciben un sufijo.
  • Las cadenas de fecha ISO se mantienen como string de forma predeterminada, con un comentario que indica si son una fecha o una fecha y hora. También puede tiparlas como Date si las convierte después de analizarlas. El esquema Zod las comprueba con .datetime() o .date() (Zod 3.23 o posterior).

Opciones

Elija interface o type, active o desactive export y readonly, elija T[] o Array<T> y defina el nombre del tipo raíz. Un array en la raíz genera un tipo de elemento y un alias ...List.

Cómo usarlo

Pegue JSON o suelte un archivo .json y, a continuación, copie o descargue la salida TypeScript o Zod.

Privacidad

La conversión se ejecuta por completo en su navegador. Su JSON nunca se sube; la última entrada se guarda en el almacenamiento local.