Utilice este generador de JSON a TypeScript para crear interfaces y tipos con seguridad de tipos a partir de ejemplos JSON para aplicaciones frontend y servicios Node.js.
Paso 1: pega una muestra JSON
- Pegue un objeto o matriz JSON representativa en el editor de la izquierda.
- Incluye objetos anidados, matrices y campos que aceptan valores NULL para que los tipos se infieran correctamente.
- Utilice
Import para cargar JSON desde un archivo, URL o datos de muestra.
Paso 2: elige las opciones de generación de TypeScript
- Establezca un
Root Type Name que coincide con su modelo (por ejemplo, Root). - Elija una estrategia de manejo nulo (
Optional (?) vs Union (| null)) que coincide con su código base. - Decida si desea los alias
interfaces o type para la salida.
Paso 3: revisar el código generado
- Verifique los nombres de los campos, los tipos y cómo se modelan las matrices/objetos.
- Ajuste opciones como
Root Type Name, manejo de nulos y marcos si están disponibles. - Si un campo se infiere incorrectamente, modifique su JSON de muestra y vuelva a generarlo.
Paso 4: utiliza los tipos generados
- Pegue el resultado en su proyecto y expórtelo desde su módulo de tipos.
- Utilice los tipos para respuestas de API, DTO y límites de análisis del tiempo de ejecución.
- Regere cuando cambie su carga útil JSON para mantener a los clientes sincronizados.
Paso 5: copiar o descargar
- Copie el resultado en su proyecto o descárguelo como un archivo.
- Ejecute su formateador/linter para que coincida con su estilo de código.
- Agregue bibliotecas de análisis/serialización JSON si su idioma las requiere.
Salida de ejemplo (simplificada)
// entrada JSON
{
"id": 123,
"name": "Maeve Winters",
"email": "[email protected]",
"active": true,
"roles": ["admin", "editor"],
"metadata": { "plan": "pro" },
"createdAt": "2024-03-01T10:15:00Z",
"score": 99.5,
"notes": null
}
// Generated TypeScript types (simplified)
export interface Metadata {
plan: string;
}
export interface Root {
id: number;
name: string;
email: string | null;
active: boolean;
roles: string[];
metadata: Metadata;
createdAt: string;
score: number;
notes: null;
}