Utilizza questo generatore da JSON a TypeScript per creare interfacce e tipi indipendenti dai tipi da esempi JSON per app frontend e servizi Node.js.
Passaggio 1: incolla un esempio JSON
- Incolla un oggetto o un array JSON rappresentativo nell'editor di sinistra.
- Includere oggetti nidificati, matrici e campi nullable in modo che i tipi vengano dedotti correttamente.
- Utilizza
Import per caricare JSON da un file, un URL o dati di esempio.
Passaggio 2: scegli le opzioni di generazione di TypeScript
- Imposta un
Root Type Name che corrisponda al tuo modello (ad esempio Root). - Scegli una strategia di gestione nulla (
Optional (?) vs Union (| null)) per abbinare la tua codebase. - Decidi se vuoi gli alias
interfaces o type per l'output.
Passaggio 3: rivedere il codice generato
- Controlla i nomi dei campi, i tipi e il modo in cui sono modellati gli array/oggetti.
- Modifica opzioni come
Root Type Name, gestione null e framework, se disponibili. - Se un campo viene dedotto in modo errato, modifica il JSON di esempio e rigeneralo.
Passaggio 4: utilizzare i tipi generati
- Incolla l'output nel tuo progetto ed esportalo dal modulo Tipi.
- Utilizza i tipi per le risposte API, i DTO e i limiti di analisi del runtime.
- Rigenera quando il payload JSON cambia per mantenere i client sincronizzati.
Passaggio 5: copiare o scaricare
- Copia l'output nel tuo progetto o scaricalo come file.
- Esegui il tuo formattatore/linter per adattarlo allo stile del tuo codice.
- Aggiungi librerie di analisi/serializzazione JSON se la tua lingua le richiede.
Output di esempio (semplificato)
// Ingresso 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;
}