Ugrás a tartalomhoz
TextArray
100% helyi

JSON-ból TypeScript

Generálj TypeScript-interfészeket JSON-dokumentumból — a beágyazott objektumok nevesített al-interfészek lesznek.

Bemenet
Kimenet

JSON-ból TypeScript

Illessz be egy JSON-dokumentumot — API-választ, konfigurációs fájlt, adatbázissort —, és kész TypeScript-deklarációkat kapsz. A típusok rekurzívan következnek: a primitívek string, number és boolean típusra képződnek le, a tömbök az elemtípusukat hordozzák, a vegyes tömbökből pedig tiszta uniók lesznek, például (number | string)[]. Minden beágyazott objektum nevesített al-interfésszé válik, amelynek neve a tulajdonság kulcsából képződik PascalCase írásmóddal — a „user" tulajdonságból tehát User interfész lesz, amelyet bárhol importálhatsz és hivatkozhatsz.

Az azonos szerkezeteket felismeri, és egyetlen interfészen osztoznak duplikátumok helyett; számozott utótag csak akkor jelenik meg, ha két objektum kulcsneve azonos, de a szerkezetük eltér. Az üres tömbök unknown[]-ként, az üres objektumok Record<string, unknown>-ként jönnek ki — őszinte helykitöltők találgatás helyett. Az érvénytelen azonosítónak számító tulajdonságnevek automatikusan idézőjelbe kerülnek, így a kötőjeles és számkulcsok sértetlenül megmaradnak.

A beállítások valós projektkonvenciókat fednek le. Nevezd el a gyökértípust, válassz az interface és a type deklaráció között, exportálj mindent vagy semmit, jelöld a tulajdonságokat readonly-ként, és döntsd el, mi történjen a null értékekkel — explicit null típus vagy opcionális tulajdonság legyen belőlük. Az érvénytelen JSON nyugodt hibaüzenetet ad a probléma sorával és oszlopával, ugyanúgy, mint a JSON-formázó.

Minden helyben, a böngésződben fut: a tokeneket, felhasználói adatokat vagy belső payloadokat tartalmazó API-válaszok soha nem hagyják el a gépedet. Illeszd be az adatot, másold a deklarációkat a kódbázisodba — és az adataid alakja típusos.

Gyakori kérdések

Hogyan kapnak típust a beágyazott objektumok és tömbök?
A beágyazott objektumok nevesített al-interfészek lesznek, nevük a tulajdonság kulcsából képződik PascalCase írásmóddal. A tömbök az elemtípusukat veszik fel; eltérő elemeknél unió keletkezik, például (number | string)[]. Az azonos alakú objektumok tömbje egyetlen interfészt használ minden elemhez.
Mi történik két azonos szerkezetű objektummal?
Egy interfészen osztoznak — a generátor összehasonlítja a szerkezeteket, és az első nevet használja újra. Számozott utótag, például Item2, csak akkor jelenik meg, ha két tulajdonság kulcsa azonos, de a szerkezetük valóban eltér.
Hogyan kezeli a null értékeket?
Alapértelmezésben a null értékű tulajdonság null típust kap — pontosan azt, amit a minta állít. Az „Opcionális tulajdonságok null értékeknél" bekapcsolásával prop?: unknown keletkezik helyette — hasznos, ha a null az API-dban azt jelenti, hogy „néha hiányzik".
Miért unknown[] lett az üres tömböm típusa?
Az üres tömb semmit sem árul el az elemtípusáról, így az unknown[] az őszinte válasz. Tegyél a mintába egy jellemző elemet, és a generátor kikövetkezteti a valódi típust.
Feltöltődik valahová a JSON-om?
Nem. Az eszköz teljes egészében a böngésződben fut, és az adatok soha nem hagyják el az eszközödet — tokeneket vagy személyes adatokat tartalmazó API-válaszoknál is biztonságos.