Ir al contenido
iyziTool

JSON a TypeScript

Convierte una respuesta de API o un archivo de configuración en interfaces de TypeScript. Los objetos anidados se convierten en interfaces con nombre y las claves que faltan en algunos elementos de un array pasan a ser opcionales.

TypeScript
export interface Root { id: number; name: string; email: null; tags: string[]; address: Address; orders: Order[]; } export interface Order { id: number; total: number; note?: string; } export interface Address { city: string; zip: string; }

Sobre esta herramienta

Tipar una respuesta de API a mano es tedioso y propenso a errores. Este generador recorre el JSON, crea una interfaz para cada forma de objeto y la nombra según la clave que la contiene (en singular para los arrays), infiere los tipos primitivos, une los elementos mixtos de un array y marca como opcionales las claves que no aparecen en todos los elementos. Los valores null se convierten en una unión con null para que no olvides gestionarlos.

El resultado es TypeScript sin florituras, con interfaces exportadas, listo para pegar en un .d.ts o en un módulo. Revísalo: el JSON no puede expresar que una cadena sea en realidad una fecha o un enum, así que eso conviene afinarlo a mano.

Preguntas frecuentes

¿Por qué hay una clave marcada como opcional?
Estaba presente en algunos elementos del array, pero no en todos. Es la inferencia más segura; quita el ? si tu API la garantiza.
¿Puede generar alias de tipo en lugar de interfaces?
Los objetos se convierten en interfaces; la raíz se convierte en alias de tipo solo cuando es un array o un primitivo.
¿Y con un JSON muy grande?
Miles de objetos no son problema. Solo las formas únicas generan interfaces.

Herramientas relacionadas