Pāriet uz galveno saturu

JSON uz TypeScript konvertētājs bez maksas

Ģenerē TypeScript interfeisus vai tipa aizstājvārdus no jebkura JSON objekta vai masīva. Ielīmē JSON un tūlītēji saņem gatavus TypeScript tipus.

Darbojas bezsaistē pēc ielādes
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;
}

Biežākie lietojumi

  • Ģenerēt TypeScript veidus no API atbildēmIelīmējiet API JSON atbildi un uzreiz ģenerējiet TypeScript sąsajas drošam priekšpuses koda tipējumam.
  • TypeScript veidi konfigurācijai un iestatījuma objektiemĢenerējiet TypeScript sąsajas no JSON konfigurācijas failiem, lai pievienotu tipa drošumu programmas iestatījumiem.
  • Ģenerēt TypeScript veidus no datu bāzes ierakstiemPārvērtiet JSON eksportētus datu bāzes ierakstus vai ORM vaicājuma rezultātus TypeScript sąsajās datu slāņa tipējumam.
  • Tipa viltotu datus un testa nomodelesĢenerējiet TypeScript sąsajas no JSON viltotu datu un testa nomodelēm vienību testu un Storybook stāstu tipējumam.
  • Tipa trešo pušu API atbildesĢenerējiet TypeScript sąsajas no trešo pušu API atbildēm, kur trūkst vai ir novecojuši oficiālie veidi.

Kā tas darbojas

Šis rīks izmanto pašrakstītu rekursīvu tipa secinājumu algoritmu bez ārējām bibliotēkām — JSON.parse ievades validēšanai un parsēšanai, tad pielāgotu apiešanu, kas iet cauri katrai vērtībai JSON kokā un izvada TypeScript interfeisa vai tipa deklarācijas tieši pārlūkprogrammā. Nekas netiek sūtīts uz serveri.

  1. 1
    JSON parsēts un validēts
    Jūsu ievade tiek nodota JSON.parse. Ja tā neizdodas, precīza parsēšanas kļūda parādās uzreiz zem ievades. Veiksmīga parsēšana rada tipizētu vērtību koku, kas virza pārējo konvertēšanu.
  2. 2
    Rekursīvs tipa secinājums
    Rekursīva getType funkcija iet cauri katram mezglam: primitīvi kartējas uz string, number, boolean vai null; objekti izraisa jaunu nosauktu interfeisu; objektu masīviem to atslēgas tiek apvienotas visos elementos, tāpēc atslēgas, kas atrodas tikai dažos vienumos, kļūst neobligātas, un konfliktējošie vērtību tipi tiek savienoti ar |.
  3. 3
    Sadursmes-droša interfeisa nosaukšana
    Katrs ligzdotais objekts saņem PascalCase nosaukumu, atvasinātu no tā JSON atslēgas (snake_case, kebab-case un atstarpes tiek visas normalizētas). Ja diviem strukturāli atšķirīgiem objektiem būtu tas pats nosaukums, tiek pievienota skaitliska sufiksa (Data, Data2, …), nevis klusi pārrakstīta iepriekšējā definīcija.
  4. 4
    Izvade renderēta un lejupielādējama
    Ligzdotie interfeisi tiek izvadīti pirmie, tad saknes tips, formatēts kā export interface vai export type atkarībā no jūsu izvēles. Rezultātu var kopēt starpliktuvē vai lejupielādēt kā .ts failu — viss veidots ar standarta Blob un bez servera saziņas.

Saistītie rīki

Bieži uzdotie jautājumi