Desarrollador

JSON a TypeScript

Convierte un objeto JSON en interfaces TypeScript tipadas.

  • Instantánea
  • Gratis
  • Privada (procesada localmente)
  • Sin registro

Interfaces TypeScript

Tipar una respuesta de API en segundos

En vez de escribir a mano las interfaces de un JSON grande, pégalo aquí. La herramienta deduce los tipos recursivamente: objetos anidados convertidos en interfaces separadas, arrays tipados, campos opcionales marcados con «?».

  1. Pega el JSON

    Una respuesta de API, un archivo de config, cualquier objeto.

  2. Nombra la raíz

    «Root» por defecto, o el nombre que prefieras.

  3. Copia las interfaces

    Listas para pegar en tu archivo .ts.

Ejemplo de inferencia

Valor JSONTipo deducido
"name": "Ada"name: string
"age": 36age: number
"roles": ["admin"]roles: string[]
"profile": { … }profile: Profile
(clave ausente de un objeto de un array)campo?: tipo

Inferencia a partir de un ejemplo: recuerda refinar los null (a menudo en una unión string | null) y comprobar los tipos después. Todo ocurre localmente, tu JSON no sale del navegador.

Preguntas frecuentes

¿Cómo se deducen los tipos?

La herramienta examina cada valor: un número pasa a number, una cadena a string, un booleano a boolean. Los objetos se vuelven interfaces nombradas según su clave, y los arrays se tipan según sus elementos (string[], MiTipo[]…).

¿Cómo se detectan los campos opcionales?

Cuando un array contiene varios objetos, la herramienta fusiona sus claves. Una clave presente en algunos objetos pero no en todos se marca opcional con «?». Es exactamente el comportamiento esperado para datos de API heterogéneos.

¿Qué pasa con los valores null o los arrays vacíos?

Un valor null se tipa null (a refinar manualmente, a menudo en una unión como string | null). Un array vacío pasa a unknown[], porque su tipo de elemento no puede determinarse a partir de un solo ejemplo.

¿El resultado está listo para pegar en mi código?

Sí: la interfaz raíz se nombra a tu elección («Root» por defecto), las subinterfaces se declaran encima y la sintaxis es TypeScript válido. Renombra las interfaces según tu dominio para mayor claridad.