Acerca de esta herramienta
Genera declaraciones de tipos de TypeScript a partir de JSON para revisar campos, arrays y estructuras anidadas. Se tienen en cuenta todos los elementos del array y los campos ausentes en algunos objetos se marcan como opcionales. La salida contiene definiciones de tipos, no los valores originales.
Cómo se usa
- Introduce JSON válido, preferiblemente un objeto o una matriz de objetos.
- Indica el nombre del tipo raíz y elige interface o type.
- Pulsa «Convertir» y revisa los signos ? de campos opcionales, las uniones con null y los tipos anidados.
- Copia el código o descarga el archivo .ts con el nombre normalizado del tipo raíz.
Ejemplos
- [{"id":1,"name":"Ana"},{"id":2,"email":"a@example.com"}]: id es obligatorio; name y email son opcionales.
- [1,"a",true]: el tipo de los elementos conserva la unión de number, string y boolean.
- {"date":"2026-01-01","matrix":[[1,2],[3,4]]}: date es string y matrix es number[][].
Reglas de conversión de tipos
Las cadenas se convierten en string; los enteros y decimales, en number; los booleanos, en boolean. La ausencia y null explícito se registran por separado: un campo ausente recibe ?, y un tipo conocido que también admite null recibe | null. Una muestra solo con null no permite inferir string. Las matrices vacías usan unknown[] y los objetos generan tipos anidados con nombres estables. Las propiedades con nombres inválidos se escriben entre comillas; los nombres de tipos se normalizan y se evitan colisiones. Las fechas siguen siendo string. Las muestras no garantizan que todos los datos futuros cumplan el tipo. Entrada y salida: hasta 1 MiB cada una; 64 niveles, 100000 nodos, 5000 campos combinados y 256 tipos. Los enteros no seguros, números no finitos y valores que se redondean a cero por subdesbordamiento causan un error. Los demás decimales dependen de la precisión de coma flotante del navegador.
Usos habituales
- Crear borradores de tipos a partir de respuestas de API.
- Detectar campos que pueden faltar en matrices de objetos.
- Crear declaraciones legibles para JSON anidado.
Privacidad
El JSON y el código generado se procesan solo en tu navegador, sin enviarse ni guardarse automáticamente. No se ejecuta ningún código incluido en la entrada.
Si quieres conservar los resultados, cópialos o descárgalos antes de salir de la página.
Preguntas frecuentes
¿Por qué las fechas no se convierten en Date?
JSON no tiene un tipo Date. Las cadenas con aspecto de fecha siguen siendo string; la aplicación debe encargarse de la conversión durante la ejecución.
¿Cómo se detectan los campos opcionales?
Un campo se marca como opcional cuando aparece en algunos objetos de muestra, pero falta en otros. Incluye varias muestras representativas para reflejar mejor los campos.
¿Qué diferencia hay entre null y un campo ausente?
Con null el campo existe y tiene un valor nulo; un campo ausente no existe. Se representan mediante una unión de tipos y una marca opcional, respectivamente.
¿Qué pasa si los elementos tienen tipos distintos?
Se combinan las estructuras de objetos compatibles. Enteros y decimales pasan a number y los tipos básicos diferentes se conservan en una unión.
¿El resultado valida los datos completamente?
No. TypeScript ofrece una descripción estática; no valida automáticamente el JSON durante la ejecución ni infiere casos ausentes en las muestras.