Qué hace
Pega una muestra JSON, por ejemplo una respuesta copiada del panel de red del navegador, y obtén los tipos que implica en cinco formatos: TypeScript (interface o type), Zod con z.infer, JSON Schema 2020-12, structs de Go con etiquetas json y dataclasses de Python. Todo se procesa en tu navegador con el mismo analizador estricto del formateador JSON, que indica línea y columna de cada error.
Cómo se infieren los tipos
Los objetos se convierten en tipos con nombre tomado de la clave (items → Item, en singular para los elementos de un array). Los elementos de un array se fusionan en un solo tipo: un campo que falta en algunos elementos pasa a ser opcional, y tipos distintos forman una unión, así [1, "a", null] es (string | number | null)[]. Un array vacío es unknown[] y un objeto vacío Record<string, unknown>. Enteros y decimales son number en TypeScript, pero int64/float64 en Go e int/float en Python. Las claves que no son identificadores se escriben entre comillas.
Límites
Una muestra solo refleja una respuesta. Un estado es string, no la unión de sus valores; una fecha es un texto. Pega varios registros dentro de un array para fusionarlos y ajusta el resultado a mano. Para datos que llegan por la red, el esquema Zod los valida en tiempo de ejecución.