Incolla il TypeScript a sinistra e clicca "Converti" — lo trasformiamo in JSONIncolla TypeScript

Cosa fa questo strumento

Hai un'interface TypeScript insieme a un literal di oggetto tipizzato, oppure un'assegnazione const config: Config = {...}, e ti serve quel valore come JSON vero — per una richiesta API, un fixture o un esempio OpenAPI. Incolla tutto il blocco qui. Lo strumento toglie le annotazioni di tipo, risolve il literal e ti restituisce JSON che fa il parse ovunque.

La sintassi solo-tipo è trattata come la tratterebbe il compilatore TypeScript in emit time: le interfacce e i type alias vengono cancellati, as const e satisfies non cambiano l'output, Record<string, X> resta un oggetto, i modificatori readonly e ? vengono ignorati nel JSON (i campi opzionali mancanti semplicemente non ci sono). Le stringhe vengono quotate come fa JSON.stringify — doppi apici, escape dove serve — e le chiavi sono sempre stringhe.

Gli enum emettono il loro valore runtime. Un enum numerico diventa un numero, uno di stringhe diventa una stringa. Le istanze di Date escono come ISO-8601 secondo l'RFC 8259. Le proprietà undefined cadono fuori, null resta null. Puoi incollare più interfacce con le rispettive istanze in un colpo solo — ogni istanza diventa una entry di primo livello nel JSON.

Come si usa

Tre passaggi. Funziona sia per un'interface di cinque righe sia per un intero modulo <code>types.ts</code>.

1

Incolla il tuo TypeScript (o prova l'esempio)

Buttalo nell'editor a sinistra. Un'interface + oggetto tipizzato, un type alias, definizioni di enum o dichiarazioni const esportate — va bene tutto. Clicca Carica esempio per vedere com'è fatto un input realistico.

Lascia la sintassi stile handbook TypeScript com'è — non serve togliere generics, decoratori o import type. La reference JSON di MDN è un buon ripasso su come funziona la mappatura JS-verso-JSON.

2

Clicca Converti

Premi il bottone verde Converti. Lo strumento cancella le info di tipo, valuta i valori literal e li serializza come farebbe JSON.stringify(obj, null, 2).

3

Copia il JSON

Il pannello a destra mostra JSON formattato, pronto da infilare in un request body, in un esempio OpenAPI o in un fixture di test.

Quando ti torna davvero utile

Esempi di richiesta API

Hai un DTO di request Angular, Next.js o NestJS e ti serve un payload JSON per Swagger, Postman o un comando curl. Incolla interface + oggetto, prendi il JSON.

Fixture per test unitari

Trasforma un mock tipizzato inline usato in un test Jest o Vitest in un fixture JSON stand-alone per MSW, Playwright o run di integrazione.

Esempi per OpenAPI e JSON Schema

Incolla l'interface <code>User</code> e un'istanza di esempio per generare in un colpo il blocco <code>example</code> del tuo schema <a href="https://swagger.io/specification/" target="_blank" rel="noopener">OpenAPI</a>.

Portare config a JSON

Stai passando da un <code>config.ts</code> tipizzato a uno store di config in JSON? Incolla il const tipizzato, prendi JSON pulito, buttalo nel nuovo sistema.

Domande comuni

Toglie le annotazioni di tipo e i generics?

Sì. Interfacce, type alias, parametri generici, cast con as, satisfies e readonly vengono tutti cancellati come li cancella il compilatore TypeScript. Nel JSON resta solo il valore runtime.

Come vengono gestiti gli enum?

Gli enum numerici emettono il numero, quelli di stringhe emettono la stringa. const enum viene trattato come un enum normale ai fini della conversione. I riferimenti a enum dentro il literal vengono risolti nei valori dichiarati.

E i campi opzionali e i tipi Record?

I campi opzionali (name?: string) mancanti semplicemente non compaiono nel JSON — stesso comportamento del JSON.stringify di default. Record<string, X> resta un oggetto JSON con le chiavi stringa che passi.

Posso incollare un intero file di types?

Sì. Diverse interfacce, type alias, enum e const tipizzati possono stare in un unico incolla. Ogni istanza tipizzata di primo livello finisce come entry a sé nel JSON, con i tipi annidati espansi sul posto.

Come si comporta con Date, null e undefined?

I valori Date diventano stringhe ISO-8601. null resta null JSON. Le proprietà undefined escono dagli oggetti. Negli array gli elementi undefined diventano null in quello slot — coerente con JSON.stringify.

Il mio codice viene salvato?

Il codice viene mandato al backend solo per la conversione. Non viene loggato né persistito. Se incolli qualcosa di sensibile, dai un'occhiata prima.

Altri strumenti che potrebbero servirti

TypeScript a JSON è solo un pezzo del puzzle. Ecco gli strumenti che ci stanno bene insieme: