Pređi na glavni sadržaj
LibraTool logoLibraTool

JSON u TypeScript konvertor — besplatno

Generišite TypeScript interfejse ili aliase tipova iz bilo kog JSON objekta ili niza. Nalepite vaš JSON i odmah dobijte gotove TypeScript tipove.

Radi van mreže kada se učita
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;
}

Uobičajene upotrebe

  • Generišite TypeScript tipove iz odgovora API-jaZalepite JSON odgovor API-ja i odmah generišite TypeScript interfejse da biste bezbedno tipizirali kod frontenda.
  • TypeScript tipovi za konfiguraciju i objekte podešavanjaGenerišite TypeScript interfejse iz JSON datoteka konfiguracije da biste dodali tipsku sigurnost podešavanjima aplikacije.
  • Generišite TypeScript tipove iz zapisa u bazi podatakaKonvertujte JSON-izvezene zapise u bazama podataka ili rezultate ORM upita u TypeScript interfejse za tipiziranje sloja podataka.
  • Tipirajte maketne podatke i testne fiksetureGenerišite TypeScript interfejse iz JSON maketnih podataka i testnih fiksetura da tipizirate jedinične testove i Storybook priče.
  • Tipirajte odgovore API-ja trećih stranaGenerišite TypeScript interfejse iz odgovora API-ja trećih strana gde zvanični tipovi nedostaju ili su zastareli.

Kako funkcioniše

Ova alatka koristi ručno napisan rekurzivni algoritam zaključivanja tipova bez ijedne spoljne biblioteke — JSON.parse da proveri i parsira unos, zatim prilagođen obilazak koji prolazi kroz svaku vrednost u JSON stablu i emituje TypeScript interface ili type deklaracije direktno u pregledaču. Ništa se ne šalje serveru.

  1. 1
    JSON parsiran i proveren
    Vaš unos se prosleđuje JSON.parse. Ako ne uspe, tačna greška parsiranja se odmah prikazuje ispod unosa. Uspešno parsiranje proizvodi tipizovano stablo vrednosti koje pokreće ostatak konverzije.
  2. 2
    Rekurzivno zaključivanje tipa
    Rekurzivna funkcija getType prolazi kroz svaki čvor: primitivi se mapiraju u string, number, boolean, ili null; objekti pokreću novi imenovani interface; nizovi objekata imaju svoje ključeve spojene preko svih elemenata tako da ključevi prisutni samo u nekim stavkama postaju opcioni a sukobljeni tipovi vrednosti se spajaju sa |.
  3. 3
    Imenovanje interface-a bezbedno od sudara
    Svaki ugnežđeni objekat dobija PascalCase naziv izveden iz njegovog JSON ključa (snake_case, kebab-case, i razmaci se svi normalizuju). Ako bi dva strukturno različita objekta delila isti naziv, dodaje se brojčani sufiks (Data, Data2, …) umesto tihog prepisivanja ranije definicije.
  4. 4
    Izlaz prikazan i preuzimljiv
    Ugnežđeni interface-i se emituju prvi, zatim koreni tip, formatirano kao export interface ili export type u zavisnosti od vašeg izbora. Rezultat se može kopirati u privremenu memoriju ili preuzeti kao .ts fajl — sve izgrađeno sa standardnim Blob i bez putovanja do servera i nazad.

Slične alatke

Česta pitanja