Ugrás a tartalomhoz
100% helyi

TypeScript típus JSON Schema-vá

TypeScript interfész vagy típusjelölés JSON Schema-vá konvertálása.

Bemenet
Kimenet

TypeScript típus JSON Schema-vá

Illeszd be a TypeScript interfészt vagy típusjelölést, és az eszköz generálja az egyenértékű JSON Schema-t, amely API-payloadok, konfigurációs fájlok vagy bármilyen JSON-adat validálásához használható. Azoknak a fejlesztőknek készült, akik már TypeScript-ben írják le az adatuk alakját, és szükségük van egy sémára anélkül, hogy manuálisan kellene írniuk vagy egy build lépést hozniuk létre.

Válassz a JSON Schema draft-07 és az újabb 2020-12 dialektus között, mivel az érvényesítők és az eszközök még mindig különböző dialektusokat jeleznek. Az olyan karakterláncszövegalák, mint az 'active' | 'inactive', enum-ként vagy const értékek anyOf-ja lehet, és megkövetelheted az objektumoktól az ismeretlen tulajdonságok elutasítását, a dokumentációs megjegyzéseket leírási mezőkké alakíthatod, vagy az elnevezett interfészeket egy $defs (vagy definitions) blokkba kivonhatod, amelyre $ref által hivatkoznak ahelyett, hogy szétszórnák azokat mindenhol, ahol használatosak.

A tömbök, tuple-ek, Record és Map típusok, valamint a null-t tartalmazó uniók mind úgy vannak kezelve, ahogyan a TypeScript ténylegesen használja őket — egy nullable mező típustömbé vagy anyOf-ággá válik ahelyett, hogy csendesen eldobnák. Az olyan, JSON Schema-val nem kezelhető konstrukciók, mint a metódusok, függvénytípusok vagy feloldatlan általános paraméterek, a lehető legenggedelmesebben konvertálódnak, és figyelmeztetésként az eredmény alatt szerepelnek, így semmi sem marad észrevétlen.

Minden helyileg fut a böngészőben; a TypeScript típusdefinícióid és a generált schema soha nem töltődnek fel sehová. Másold be az eredményt, töltsd le .txt fájlként, vagy küld közvetlenül egy másik eszköz bemenetébe, hogy folytasd a munkát.

Gyakori kérdések

A TypeScript mely részei konvertálhatók?
Interfészek, típusjelölések, beágyazott objektum szövegeik, tömbök, tuple-ek, Record/Map/Set, Date, Partial/Required/Pick/Omit és uniók, beleértve a karakterláncszövegalák és a null. Az olyan, JSON Schema-val nem rendelkező konstrukciók, mint a metódusok és függvénytípusok, kimaradnak és figyelmeztetésekként jelennek meg.
Mi a különbség a draft-07 és a 2020-12 között?
Mindkettő JSON Schema dialektus. A 2020-12 az aktuális, $defs és prefixItems-et használ tuple-ekhez, míg a draft-07 definitions-t és egy items tömböt. Válaszd azt, amelyet az érvényesítőd vár.
Mi történik az '?'-vel megjelölt tulajdonságokkal?
Kimaradnak a séma required tömbjéből, így a generált séma megfelel a TypeScript saját elképzelésének arról, mely mezők opcionálisak.
Miért végeznek egyes mezők üres sémával {}?
Ez olyan konstrukciókra fordul elő, amelyeket a JSON Schema nem képes kifejezni, például egy általános típusparaméter vagy egy típus, amelyet az eszköz nem tudott feloldani. Figyelmeztetés kerül az eredmény alá, amely pontosan magyarázza, hogy mely mező és miért.
A TypeScript kódom valahova feltöltődik?
Nem. A konverzió teljes egészében a böngészőben fut — a TypeScript típusdefinícióid és a generált séma soha nem hagyják el az eszközöd.