JSON a TypeScript
JSON a TypeScript
Convierte ejemplos JSON en interfaces y alias de tipo de TypeScript, fusiona automáticamente campos de arreglos de objetos, infiere campos opcionales y uniones con null, y genera declaraciones de tipo adecuadas para arreglos y objetos vacíos. Ideal para modelar respuestas de API, inicializar tipos en frontend y organizar estructuras de datos.
Inicio rápido
Escenarios comunes
Convierte respuestas reales de API en modelos TypeScript iniciales para páginas frontend, clientes SDK o pruebas de integración.
Inspecciona arreglos de objetos mixtos para ver campos opcionales y tipos unión antes de formalizar un contrato de API.
Convierte datos JSON de prueba en definiciones rápidas de tipo para fixtures, historias de Storybook o prototipos.
Revisa declaraciones anidadas como User o Meta cuando cambia la forma de las cargas útiles del backend.
Consejos de uso
Limitaciones y compatibilidad
Privacidad y seguridad
Preguntas frecuentes
Las raíces de objeto generan declaraciones interface. Las raíces de arreglo y los valores primitivos generan alias type. Para un arreglo de objetos en la raíz, la raíz sigue siendo un alias type como type Root = RootItem[];, y la estructura del elemento se declara por separado.
Sin elementos o propiedades de muestra, el generador no puede inferir algo más preciso. Mantiene los arreglos vacíos como unknown[] y los objetos vacíos como interfaces que extienden Record<string, unknown> hasta que pegues datos más representativos.
Si el nombre que introduces ya es un identificador válido de TypeScript, se conserva exactamente, por ejemplo APIResponse. Los nombres no válidos se normalizan a un identificador PascalCase estable antes de generar.
El generador actual normaliza los nombres anidados a partir de las rutas de propiedad y resuelve colisiones de forma determinista. Por eso la salida nueva usa nombres como User, Meta o FooBarClass en vez de prefijar siempre el nombre raíz.
El contrato de salida actual devuelve intencionalmente declaraciones simples sin export. Así la salida se mantiene neutral y tú puedes añadir export según el estilo de tu proyecto.