Cómo funciona la inferencia de tipos
El generador analiza tu JSON e infiere un tipo TypeScript para cada valor: las cadenas se convierten en string, los números en number, los booleanos en boolean y null en null. Los arrays se tipan como T[] donde T es el tipo de elemento inferido. Cuando un array contiene elementos de diferentes tipos, el tipo de elemento se convierte en una unión como string | number.
Los objetos anidados se convierten en sus propias interfaces con nombre. El objeto raíz se llama "Root" por defecto (personalizable), y cada objeto anidado recibe un nombre en PascalCase derivado de su clave — por ejemplo una clave "userProfile" genera una interfaz "UserProfile". Esto mantiene la salida modular y legible.
Las propiedades presentes en algunos elementos del array pero ausentes en otros se marcan automáticamente como opcionales con el modificador ?. Esto modela correctamente las respuestas de API reales donde los campos pueden aparecer o no según el estado del registro.
Opciones de salida y estilo
Puedes elegir entre salida de interface y alias de tipo. Las interfaces son la elección idiomática para describir formas de objetos y soportan la fusión de declaraciones; los alias de tipo se prefieren cuando necesitas tipos unión en el nivel superior. El generador emite interfaces por defecto pero puede cambiar a alias de tipo con un clic.
Se pueden añadir modificadores readonly a todas las propiedades para producir tipos inmutables — útiles para el estado de Redux, objetos de configuración y modelos de respuesta de API que no deben mutarse tras la creación. La preferencia entre punto y coma y coma para delimitadores de propiedades también es configurable.
La palabra clave export se antepone a cada interfaz por defecto para que el archivo generado sea importable inmediatamente. El envoltorio de namespace está disponible para agrupar todos los tipos generados bajo un único identificador de módulo, común en bases de código grandes.
Flujos de trabajo de desarrollo prácticos
El flujo de trabajo más común es tipar una respuesta de API externa. Obtén una respuesta de muestra, pega el JSON y usa las interfaces generadas como argumento de tipo para llamadas fetch, solicitudes Axios o hooks de React Query. Esto elimina categorías enteras de errores de tipo en tiempo de ejecución.
Al prototipar una nueva característica, a menudo tienes un archivo de datos de muestra antes de tener definiciones de tipos formales. El generador bootstrapea tus tipos desde los datos para que puedas empezar a escribir código con seguridad de tipos inmediatamente y refinar los tipos a medida que el esquema se estabiliza.
Los equipos que migran bases de código JavaScript a TypeScript usan el generador para producir en lote archivos de interfaz para modelos de datos existentes. Incluso los tipos generados imperfectos sirven como punto de partida mucho más rápido que escribir cada interfaz manualmente.