JSON a TypeScript
Convierte un objeto JSON en interfaces TypeScript tipadas.
- Instantánea
- Gratis
- Privada (procesada localmente)
- Sin registro
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 «?».
-
Pega el JSON
Una respuesta de API, un archivo de config, cualquier objeto.
-
Nombra la raíz
«Root» por defecto, o el nombre que prefieras.
-
Copia las interfaces
Listas para pegar en tu archivo .ts.
Ejemplo de inferencia
| Valor JSON | Tipo deducido |
|---|---|
| "name": "Ada" | name: string |
| "age": 36 | age: 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.