Preskoči na glavni sadržaj

JSON u TypeScript pretvarač — besplatno

Generirajte TypeScript sučelja ili pseudonime tipova iz bilo kojeg JSON objekta ili niza. Zalijepite JSON i odmah dobijte TypeScript tipove spremne za upotrebu.

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;
}

Uobičajene namjene

  • Generiraj TypeScript tipove iz odgovora API-jaProsljeđi JSON odgovor API-ja i odmah generiraj TypeScript sučelja kako bi sigurno tipizirao frontend kod.
  • TypeScript tipovi za konfiguraciju i objekte postavkiGeneriraj TypeScript sučelja iz JSON datoteka konfiguracije kako bi se dodala tipska sigurnost postavkama aplikacije.
  • Generiraj TypeScript tipove iz zapisa baze podatakaPretvori JSON izvezene zapise baze podataka ili rezultate ORM upita u TypeScript sučelja za tipiziranje sloja podataka.
  • Tipira lažne podatke i test ukloniteljeGeneriraj TypeScript sučelja iz JSON lažnih podataka i test uklonitelja kako bi tipizirao jediničnih testove i Storybook priče.
  • Tipira odgovore API-ja trećih stranaGeneriraj TypeScript sučelja iz odgovora API-ja trećih strana gdje nedostaju ili su zastarjeli zvanični tipovi.

Kako funkcionira

Ovaj alat koristi ručno napisani rekurzivni algoritam zaključivanja tipa bez vanjskih biblioteka — JSON.parse za provjeru i raščlanjivanje unosa, zatim prilagođeni prolaz koji prolazi kroz svaku vrijednost u JSON stablu i emitira TypeScript interface ili type deklaracije izravno u pregledniku. Ništa se ne šalje na poslužitelj.

  1. 1
    JSON raščlanjen i provjeren
    Vaš unos prosljeđuje se JSON.parse. Ako ne uspije, točna greška raščlanjivanja odmah se prikazuje ispod unosa. Uspješno raščlanjivanje proizvodi tipizirano stablo vrijednosti koje pokreće ostatak pretvorbe.
  2. 2
    Rekurzivno zaključivanje tipa
    Rekurzivna funkcija getType prolazi kroz svaki čvor: primitivi se mapiraju na 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 opcionalni, a sukobljeni tipovi vrijednosti spajaju se s |.
  3. 3
    Imenovanje interfacea sigurno od sudara
    Svaki ugniježđeni objekt dobiva PascalCase naziv izveden iz svog JSON ključa (snake_case, kebab-case i razmaci su svi normalizirani). Ako bi dva strukturno različita objekta dijelila isti naziv, dodaje se brojčani sufiks (Data, Data2, …) umjesto tihog prepisivanja ranije definicije.
  4. 4
    Izlaz renderiran i preuzimljiv
    Ugniježđeni interfacei se prvo emitiraju, zatim korijenski tip, formatiran kao export interface ili export type ovisno o vašem odabiru. Rezultat se može kopirati u međuspremnik ili preuzeti kao .ts datoteka — sve izgrađeno sa standardnim Blob-om i bez okretanja poslužitelju.

Srodni alati

Često postavljana pitanja