acento.io
Herramienta dev

JSON a TypeScript

Genera interfaces TypeScript desde cualquier JSON — 100% en el navegador, sin enviar tus datos a ningún servidor.

Por Carlos Suárez , Ingeniero de sistemas
Última actualización:

Qué hace este Json To Typescript

Esta herramienta analiza cualquier objeto o array JSON y produce definiciones de tipos TypeScript listas para pegar en tu proyecto. La inferencia es recursiva: objetos anidados generan interfaces separadas, los arrays heterogéneos producen uniones, y los campos ausentes en algún elemento se marcan automáticamente como opcionales (?). Todo ocurre en tu navegador gracias a las APIs nativas de JavaScript — como la MDN — Date, que alimenta el análisis de valores temporales. 100% en el navegador — tus datos nunca salen de tu equipo. Sin subidas, sin tracking, sin logs en servidor. Si usas herramientas como quicktype.io, tu JSON viaja a un servidor externo; aquí no. Esta versión en español está optimizada para equipos hispanohablantes que trabajan con TypeScript a diario.

Características

  • Inferencia recursiva de tipos. Los objetos anidados generan sus propias interfaces con nombres derivados de la clave padre, evitando tipos any innecesarios.
  • Detección de campos opcionales. Al procesar arrays con elementos heterogéneos, los campos que no aparecen en todos los elementos se tipan como field?: tipo automáticamente.
  • Nombre raíz configurable. Pon el nombre que necesitas a la interfaz raíz — ApiResponse, UserPayload, lo que encaje con tu tsconfig.json y convenciones de proyecto.
  • Compatible con resolveJsonModule. Los tipos generados son compatibles con la opción resolveJsonModule del compilador de TypeScript, facilitando la integración directa en tu configuración.
  • Sin dependencias externas. No usa la MDN — Web Crypto API ni librerías de terceros: el análisis corre con JS puro, cero red. También puedes limpiar y validar tu JSON antes con el [formateador JSON](/es/json-formatter/).
  • Soporte para JSON Schema. Los tipos producidos siguen las mismas convenciones que los generados a partir de un typescript json schema, por lo que son compatibles con herramientas de validación en tiempo de ejecución como Zod o ajv.

Cómo usar el Json To Typescript

Tres pasos: pega, genera y copia. No necesitas instalar nada ni crear una cuenta.

  1. Pega tu JSON. Copia el objeto o array JSON desde tu API, base de datos o archivo y pégalo en el campo de entrada. Por ejemplo: { "userId": 1, "name": "Ana", "roles": ["admin"] }.
  2. Ajusta el nombre raíz. Escribe el nombre que quieres para la interfaz principal — por defecto Root. Elige un nombre que tenga sentido en tu código, como UserProfile o ApiResponse.
  3. Genera los tipos. Pulsa «Generar» y obtén las interfaces TypeScript al instante. Los objetos anidados aparecerán como interfaces separadas.
  4. Copia y pega en tu proyecto. Usa el botón «Copiar» y pega el resultado directamente en tu archivo .ts. Si necesitas convertir el JSON a YAML antes de trabajarlo, el [convertidor JSON ↔ YAML](/es/json-yaml-converter/) también está disponible.

Casos de uso comunes

  • Tipar respuestas de APIs REST. Cuando consumes un endpoint externo sin SDK, pega la respuesta de ejemplo y obtén la typescript json type exacta para tipar tu fetch o cliente Axios.
  • Migrar proyectos JavaScript a TypeScript. En una migración JS→TS, pegar los fixtures de prueba en el convertidor produce el package json typescript de interfaces de partida en segundos, sin escribirlas a mano.
  • Configuración de proyectos con tsconfig. Los equipos que trabajan con opciones avanzadas de tsconfig — como tsconfig jsx o tsconfig node — necesitan tipos bien definidos para que el compilador no genere errores al leer JSON importados con resolveJsonModule.
  • Prototipado rápido en hackathons. En un hackathon en Lima o San Juan, donde el tiempo vale, generar el esqueleto de interfaces desde el primer payload de la API externa ahorra decenas de minutos al equipo.
  • Documentación interna de contratos de datos. Los tipos generados sirven como documentación ejecutable: cuando la interfaz vive en el repo, cualquier cambio de contrato en la API rompe el compilador antes de llegar a producción.

Preguntas frecuentes

¿Mi JSON se envía a algún servidor?

No. Todo el procesamiento ocurre en tu navegador. Ningún dato abandona tu equipo, no hay logs de servidor ni registros de uso. Es la diferencia clave frente a herramientas como quicktype.io, que procesan el JSON en su infraestructura.

¿Qué diferencia hay entre un json parser typescript y este convertidor?

Un json parser typescript valida o deserializa JSON en tiempo de ejecución (como JSON.parse). Este convertidor trabaja en tiempo de diseño: analiza la estructura de un JSON de muestra y produce las interfaces estáticas que luego usa el compilador de TypeScript.

¿Cómo se relaciona con tsconfig.json y resolveJsonModule?

Con resolveJsonModule: true en tu tsconfig.json, TypeScript puede importar archivos JSON directamente. Los tipos que genera esta herramienta son equivalentes a los que infiere el compilador en ese modo, por lo que puedes usarlos como referencia o anotación explícita en tus módulos.

¿Por qué algunos campos aparecen como opcionales?

Cuando pegas un array con varios elementos y algún campo no está presente en todos ellos, el convertidor lo marca como campo?: tipo. Esto refleja la realidad del dato — la mayoría de convertidores gratuitos lo marcan siempre como requerido y te obligan a limpiar a mano.

¿Los tipos generados son compatibles con json2ts y otras herramientas?

Sí. La sintaxis de interfaces TypeScript es estándar. Los tipos producidos aquí son equivalentes a los de herramientas como json2ts y compatibles con generadores de esquemas como Zod, io-ts o ajv-ts.

¿Funciona con JSON muy anidado o arrays de objetos complejos?

Sí. La inferencia es recursiva: cada nivel de anidamiento produce su propia interfaz nombrada. Para estructuras muy grandes, el resultado puede ser extenso — puedes formatearlo o validarlo antes con el [formateador JSON](/es/json-formatter/).