Besplatan Konverter JSON u TypeScript

Generišite TypeScript interfejse ili aliase tipova iz bilo kojeg JSON objekta ili niza. Nalijepite svoj JSON i odmah dobijte spremne TypeScript tipove.

Radi offline nakon učitavanja
export interface User {
  id: number;
  name: string;
  email: string;
  isActive: boolean;
  score: number;
  tags: string[];
  address?: null;
}

export interface Root {
  user: User;
  createdAt: string;
  version: number;
}

Kako radi

Ovaj alat koristi ručno napisan rekurzivni algoritam zaključivanja tipova bez ikakvih vanjskih biblioteka — JSON.parse za validaciju i raščlanjivanje unosa, zatim prilagođen obilazak koji prolazi kroz svaku vrijednost u JSON stablu i emituje deklaracije TypeScript interface ili type direktno u pregledniku. Ništa se ne šalje serveru.

  1. 1
    JSON raščlanjen i validiran
    Vaš unos se prosljeđuje JSON.parse. Ako ne uspije, tačna greška raščlanjivanja se odmah prikazuje ispod unosa. Uspješno raščlanjivanje proizvodi tipizirano stablo vrijednosti koje pokreće ostatak konverzije.
  2. 2
    Rekurzivno zaključivanje tipova
    Rekurzivna funkcija getType prolazi kroz svaki čvor: primitivi se mapiraju na string, number, boolean, ili null; objekti aktiviraju novi imenovan interface; nizovi objekata imaju svoje ključeve spojene kroz sve elemente tako da ključevi prisutni samo u nekim stavkama postaju opcioni i sukobljeni tipovi vrijednosti se spajaju sa |.
  3. 3
    Imenovanje interfejsa bez sudara
    Svaki ugniježđeni objekat dobija PascalCase naziv izveden iz svog JSON ključa (snake_case, kebab-case, i razmaci se svi normalizuju). Ako bi dva strukturno različita objekta dijelila isti naziv, brojčani sufiks se dodaje (Data, Data2, …) umjesto tihog prepisivanja ranije definicije.
  4. 4
    Izlaz iscrtan i preuzimljiv
    Ugniježđeni interfejsi se emituju prvi, zatim korijenski tip, formatiran kao export interface ili export type zavisno od vašeg odabira. Rezultat se može kopirati u međuspremnik ili preuzeti kao .ts datoteka — sve izgrađeno standardnim Blob bez putovanja do servera.

Povezani alati

Često postavljana pitanja