JSON → TypeScript konverter
Illessz be egy API-választ, és használatra kész TypeScript interfészeket vagy type aliasokat kapsz, automatikusan kikövetkeztetett beágyazott típusokkal, opcionális mezőkkel és null uniókkal.
A böngésződben futNincs regisztrációNincs feltöltés
Hogyan használd: JSON → TypeScript
- Illessz be egy JSON mintát, például egy API-választ, a bal oldali mezőbe, vagy nyiss meg egy
.jsonfájlt. - Add meg a gyökértípus nevét (például
UservagyApiResponse). - Válassz
interfacevagytypedeklarációt, és kapcsold be/ki azexport, areadonlyvagy a mind opcionális mezők beállítást. - Válaszd az
unknown(biztonságosabb) vagy azanytípust azokhoz az értékekhez, amelyeket a minta nem árul el, például üres tömbökhöz és null értékekhez. - Másold ki a generált kódot, vagy töltsd le
.tsfájlként.
Hogyan következtetjük ki a típusokat?
- Primitívek: a stringek, számok és logikai értékek
string,numberésbooleantípust kapnak. - A beágyazott objektumok saját, PascalCase nevű interfészt kapnak, így a
billing_addressebből lesz:BillingAddress. - Az objektumtömbök egyetlen, egyes számú nevű elemtípusba olvadnak össze: a
userseredményeUser[]. Az egyes elemekből hiányzó kulcs opcionális lesz (key?:). - A null értékek összeadódnak az adott kulcsnál látott többi értékkel:
string | null. Az a kulcs, amely mindig csaknull,unknownvagyanytípust kap. - A vegyes tömbökből unió tömbök lesznek, például
(number | string)[]. - Az azonos alakzatokat egyszer deklaráljuk és újrahasznosítjuk, az azonos nevet kapó eltérő alakzatok pedig számképzőt kapnak.
- A nem érvényes azonosító kulcsok, például a
"first-name"vagy a"2fa", idézőjelbe kerülnek.
interface vagy type
Egyszerű objektumalakzatokhoz a kettő szinte felcserélhető. Az interface deklarációk kiterjeszthetők és összevonhatók, és kicsit érthetőbb fordítási hibákat adnak. A type aliasok uniókat és mapped type-okat is ki tudnak fejezni. Sok csapat interfészeket használ az API-modellekhez, minden máshoz pedig típusokat; azt válaszd, amit a kódbázisod vagy a lintered (@typescript-eslint/consistent-type-definitions) elvár.
Jobb típusok a mintából
A típusok csak annyira lehetnek teljesek, mint a minta. Olyan választ illessz be, amely tartalmazza az opcionális mezőket is, vagy egy több, változatos elemet tartalmazó tömböt, hogy a generátor felismerje az opcionális és nullable kulcsokat. Az olyan értékek, mint a dátumok és az enumok, a JSON-ban egyszerű stringként érkeznek; ezeket utólag szűkítsd kézzel, például status: 'active' | 'disabled'. Futásidejű validáláshoz párosítsd a generált típusokat egy sémakönyvtárral, például a Zoddal.
Gyakran ismételt kérdések
Feltöltődik a JSON-om?
Hogyan ismeri fel az opcionális tulajdonságokat?
? jellel opcionálisként jelölődnek. Egyetlen objektum esetén minden kulcs kötelező, hacsak nem jelölöd be a Mind opcionális opciót.Az <code>unknown</code> vagy az <code>any</code> típust használjam?
unknown biztonságosabb: a TypeScript megköveteli, hogy használat előtt szűkítsd az értéket. Az any kikapcsolja a típusellenőrzést az adott értékre. Csak akkor használd, ha később pontosítani akarod a típusokat.Miért <code>string</code> típusú egy ISO dátum?
new Date() segítségével alakítod át őket, a modelledben változtasd a tulajdonságot Date típusúra.