Conversor JSON a TypeScript
Conversor JSON a TypeScript: infiere interfaces y tipos a partir de un objeto JSON válido.
Tipos inferidos desde una muestra
La herramienta analiza un JSON válido y crea tipos TypeScript a partir de los valores observados. Las cadenas pasan a string, los números a number, los booleanos a boolean y los nulos a null. Los objetos generan interfaces y los arrays combinan los tipos presentes en sus elementos.
Objetos anidados e interfaces
Cada objeto anidado necesita un nombre de tipo para que la propiedad exterior pueda referenciarlo. Con {"name":"Ana","age":22}, Root contiene name: string y age: number. Una propiedad cuyo nombre no sea un identificador cómodo debe conservarse entre comillas para seguir representando la clave JSON exacta.
Qué aprende de los arrays
Un array con números y cadenas origina una unión de los tipos observados. Un array vacío no ofrece evidencia sobre sus futuros elementos y se representa como unknown[]. Si hay objetos con formas distintas, revisa la unión generada: una sola respuesta de ejemplo no define por sí misma el contrato completo.
Opcionalidad que no puede deducirse
Todas las propiedades presentes en la muestra parecen obligatorias, aunque una API pueda omitirlas en otras respuestas. Del mismo modo, un número concreto no demuestra que exista un enum o un rango. Contrasta el borrador con la documentación o con un esquema antes de usarlo como contrato.
Uso razonable del resultado
La salida acelera el primer tipado de un payload conocido. Conviene renombrar interfaces, revisar null, marcar campos opcionales y probar varias muestras. El conversor no ejecuta TypeScript, no genera validación en tiempo de ejecución y no protege frente a respuestas que cambien.
Fuentes y referencias
Continúa con estas herramientas
Preguntas frecuentes
¿Por qué un array vacío se convierte en unknown[]?
Porque no contiene ningún elemento del que inferir un tipo. Elegir string[], number[] u otra forma sería inventar información que la muestra no aporta.
¿Un campo generado sin signo de interrogación siempre es obligatorio?
Solo está presente en el JSON analizado. Debes confirmar la obligatoriedad en el contrato real y añadir ? si otras respuestas pueden omitirlo.
¿Cómo trata un valor null?
Lo conserva como tipo null. Si el campo admite también otro valor, necesitas otra muestra o editar una unión como string | null.
¿Las interfaces validan los datos recibidos?
No. TypeScript comprueba código durante el desarrollo, pero el JSON externo sigue necesitando validación en ejecución antes de confiar en sus valores.
¿Qué hago con nombres de interfaces poco claros?
Renómbralos según el dominio y actualiza sus referencias. Los nombres generados describen la estructura, pero no conocen conceptos como usuario, pedido o producto.
¿Qué tipo genera para un número decimal?
TypeScript usa number tanto para enteros como para decimales de JSON. El conversor no crea tipos numéricos separados.
Herramienta de OCC Tools