Vai al contenuto
TextArray
100% locale

JSON in TypeScript

Genera interfacce TypeScript da un documento JSON, con oggetti nidificati come interfacce secondarie denominate.

Ingresso

JSON in TypeScript

Incolla un documento JSON (una risposta API, un file di configurazione, una riga di database) e ottieni dichiarazioni TypeScript pronte all'uso. I tipi vengono dedotti in modo ricorsivo: le primitive vengono mappate a stringa, numero e booleano, gli array portano il loro tipo di elemento e gli array misti diventano unioni pulite come (numero | stringa)[]. Ogni oggetto nidificato diventa una sottointerfaccia denominata derivata dalla sua chiave di proprietà in PascalCase, quindi una proprietà "utente" produce un'interfaccia utente che puoi importare e fare riferimento ovunque.

Vengono rilevate forme identiche e riutilizzate un'unica interfaccia invece di generare duplicati; un suffisso numerico appare solo quando due oggetti condividono un nome chiave ma differiscono nella struttura. Gli array vuoti vengono visualizzati come Unknown[] e gli oggetti vuoti come Record<string, Unknown>: segnaposto onesti anziché supposizioni. I nomi delle proprietà che non sono identificatori validi vengono citati automaticamente, quindi kebab-case e tasti numerici sopravvivono intatti.

Le opzioni coprono le convenzioni di progetto reali. Assegna un nome al tipo root, scegli tra dichiarazioni di interfaccia e tipo, esporta tutto o niente, contrassegna tutte le proprietà di sola lettura e decidi come vengono trattati i valori null: come tipo null esplicito o come proprietà opzionali. Un JSON non valido produce un errore tranquillo con la riga e la colonna del problema, nello stesso modo in cui lo segnala il formattatore JSON.

Tutto viene eseguito localmente nel tuo browser: le risposte API con token, record utente o payload interni non lasciano mai la tua macchina. Incolla, copia le dichiarazioni nella tua codebase e la forma dei tuoi dati viene digitata.

FAQ

Come vengono tipizzati gli oggetti e gli array nidificati?
Gli oggetti nidificati diventano sottointerfacce denominate derivate dalla loro chiave di proprietà in PascalCase. Gli array prendono il loro tipo di elemento; quando gli elementi differiscono, il tipo è un'unione come (numero | stringa)[]. Una serie di oggetti con la stessa forma riutilizza un'interfaccia per tutti gli elementi.
Cosa succede con due oggetti della stessa forma?
Condividono un'unica interfaccia: il generatore confronta le strutture e riutilizza il nome. Un suffisso numerico come Item2 appare solo quando due proprietà hanno la stessa chiave ma forme veramente diverse.
Come vengono gestiti i valori nulli?
Per impostazione predefinita, una proprietà null viene digitata come null, che è esattamente ciò che dice l'esempio. Attiva "Proprietà facoltative per valori null" per emettere invece prop?: Unknown — utile quando null significa "a volte assente" nella tua API.
Perché il mio array vuoto è digitato come sconosciuto[]?
Un array vuoto non contiene alcuna prova del tipo di elemento, quindi sconosciuto[] è la risposta onesta. Aggiungi un elemento rappresentativo al campione e il generatore deduce il tipo reale.
Il mio JSON è caricato da qualche parte?
No. Lo strumento viene eseguito interamente nel tuo browser e i tuoi dati non lasciano mai il tuo dispositivo: sicuro per le risposte API che contengono token o dati personali.