Vai al contenuto
ToolsMinify logo
Strumenti per sviluppatori

Convertitore JSON in Interfacce TypeScript

Genera interfacce TypeScript da un campione JSON nel browser - niente account, upload o CLI codegen.

Informazioni su Convertitore JSON in Interfacce TypeScript

Genera interfacce TypeScript da un campione JSON nel browser - niente account, upload o CLI codegen. Incolla una risposta API o, meglio, un array di record. Oggetti annidati diventano interfacce nominate, gli array sono tipizzati da ogni elemento (non solo il primo) e forme identiche sono deduplicate. Il walker non collassa chiavi mancanti e JSON null: una chiave omessa su alcuni item e opzionale (`?`); una chiave presente ma null e `T | null`. Copia il risultato in un file `.ts` o scaricalo. Abbinalo al Minificatore JSON se il payload e arrivato minificato, o al JSONPath Tester per ispezionare un campo prima.

Come usare Convertitore JSON in Interfacce TypeScript

  1. Incolla JSON (un array di record inferisce chiavi opzionali piu accuratamente di un singolo oggetto). Carica un esempio se vuoi vedere opzionale vs nullable per primi.
  2. Imposta il nome root (User, Order, ApiResponse). Scegli interface (default) o type alias.
  3. Leggi il report inferenza: conteggio dichiarazioni, chiavi opzionali, chiavi nullable e union. Gli avvisi segnalano array vuoti, oggetti vuoti, campi tutti-null e chiavi quotate.
  4. Copia il TypeScript o scarica un file .ts. Mettilo in types/ e annota `fetch` / TanStack Query con il nome root.
  5. Nulla viene inviato a un server. JSON non valido segnala riga e colonna.

Esempi di Convertitore JSON in Interfacce TypeScript

Chiave opzionale da array di record

[{"sku":"A1","qty":2},{"sku":"B7","qty":1,"gift":true}] diventa Order con gift?: boolean. La chiave e opzionale perche il primo item l'ha omessa - non perche il valore era null.

Nullable vs opzionale

Due utenti dove email manca su una riga e note e null sull'altra emettono email?: string e note: string | null. Chiavi mancanti e JSON null restano distinti, cosa che la maggior parte dei convertitori collassa.

Interfacce annidate nominate

{"user":{"address":{"city":"London"}}} emette Address, poi User, poi Root. Oggetti annidati sono nominati dalle chiavi in PascalCase cosi puoi importare Address da solo.

Chiavi quotate e contenitori vuoti

{"content-type":"application/json","items":[],"meta":{}} quota content-type, tipizza items come unknown[] e meta come Record<string, unknown>. Gli avvisi chiedono un campione piu ricco.

interface vs type alias

Lascia interface per forme risposta API (declaration merging, errori leggermente migliori). Passa a type alias quando il file avra union o mapped types. A runtime l'output e identico.

Casi d'uso comuni

  • Tipizzare risposte fetch() o axios in app React, Vue o Next.js
  • Generare generic TanStack Query / SWR da payload reale
  • Trasformare un body webhook (Stripe, GitHub, Slack) in evento tipizzato
  • Bozzare tipi per fixture prima che esista la spec OpenAPI
  • Convertire un blob config JSON in TypeScript completo per l'editor

Domande frequenti su Convertitore JSON in Interfacce TypeScript

Come converto JSON in un'interfaccia TypeScript?
Incolla un campione JSON, nomina la root e copia le interfacce generate. La conversione avviene nel browser. Oggetti annidati diventano interfacce nominate, gli array sono tipizzati da ogni elemento e chiavi mancanti su item array sono marcate opzionali con ?.
Qual e la differenza tra opzionale (?) e nullable (| null)?
Opzionale significa che la chiave era assente su alcuni item dell'array. Nullable significa che la chiave era presente e il valore era JSON null. email?: string permette di omettere il campo. note: string | null richiede la chiave. Questo convertitore non li collassa in email?: string | null salvo che il campione mostri entrambi.
Devo emettere interface o type alias?
Usa interface per forme oggetto che potresti estendere o unire tra file. Usa type alias per union, intersection e mapped types. Per una tipica risposta API va bene entrambi; questa pagina defaulta interface perche e lo stile TypeScript comune per modelli JSON.
Perche un campo e unknown[] o Record<string, unknown>?
Array vuoti non hanno elementi da ispezionare, quindi il fallback e unknown[]. Oggetti vuoti non hanno chiavi, quindi il fallback e Record<string, unknown>. Incolla un esempio popolato per tipo elemento concreto o interfaccia annidata.
Sostituisce quicktype?
No. quicktype.io copre codegen multilingua e validator runtime. Questa pagina e un convertitore JSON in interfaccia TypeScript privato lato client per un payload incollato - niente install, account, e un report che separa chiavi opzionali da JSON null.
Il mio JSON viene caricato?
No. Parsing e inferenza avvengono solo nel browser. Sicuro per risposte API interne, token e PII. Verifica in DevTools Network: convertire non invia richieste.
Posso generare tipi da un array JSON?
Si, e dovresti quando le chiavi variano. Un array di record si fonde in un'interfaccia. Chiavi mancanti diventano opzionali. Se nomini la root Users, l'output e interface User piu type Users = User[]. Se la nomini User, tipizza il payload come User[].