Preskočiť na obsah
100% lokálne

Typ TypeScript na JSON Schema

Preveďte rozhranie alebo alias typu TypeScript na JSON Schema.

Vstup
Výstup

Typ TypeScript na JSON Schema

Vložte rozhranie alebo alias typu TypeScript a tento nástroj vygeneruje ekvivalentný JSON Schema, ktorý je pripravený na validáciu API payload-ov, konfiguračných súborov alebo akýchkoľvek iných JSON dát, ktoré by mali zodpovedať vašim definíciám typov. Je vybudovaný pre vývojárov, ktorí už popisujú svoje dátové štruktúry v TypeScript-e a chcú schému bez manuálneho zápisu alebo zapojenia kroku v procese kompilácii.

Vyberte si medzi JSON Schema draft-07 a novšou dialektom 2020-12, pretože validátory a nástroje sa stále líšia v tom, ktorý z nich očakávajú. Reťazcové uniónie ako 'active' | 'inactive' sa môžu zobraziť buď ako enum, alebo ako anyOf konštantných hodnôt, a môžete požadovať, aby objekty odmietli neznáme vlastnosti, превiesť komentáre dokumentácie do polí popisy, alebo extrahovať pomenované rozhrania do bloku $defs (alebo definitions) referovaného pomocou $ref namiesto zabudovaní všade, kde sú použité.

Polia, n-tice, Record a Map typy a uniónie, ktoré obsahujú null, sú spracované tak, ako ich TypeScript skutočne používa — pole pripúšťajúce null sa stane poľom typu alebo vetvou anyOf, nie tichým zanechaním. Konštrukcie bez ekvivalentu v JSON Schema, ako sú metódy, typy funkcií alebo nevyriešené generické parametre, sú konvertované čo najvľúdivejšie a uvedené ako varovania pod výsledkom, aby sa nič nezlyhal bez povšimnutia.

Všetko sa spúšťa lokálne vo vašom prehliadači; vaše definície typov a vygenerovaný JSON Schema nikdy nebudú nahrané nikam. Skopírujte výsledok, stiahnite si ho ako súbor .txt alebo ho odošlite priamo do vstupu iného nástroja, aby ste pokračovali v práci.

Časté otázky

Ktoré časti TypeScript-u môže previesť?
Rozhrania, aliasy typov, vnorené objektové literály, polia, n-tice, Record/Map/Set, Date, Partial/Required/Pick/Omit a uniónie vrátane reťazcových uniónií a null. Konštrukcie bez ekvivalentu v JSON Schema, ako sú metódy a typy funkcií, sú preskočené a uvedené ako varovania.
Aký je rozdiel medzi draft-07 a 2020-12?
Obe sú dialekty JSON Schema. 2020-12 je aktuálna a používa $defs a prefixItems pre n-tice, zatiaľ čo draft-07 používa definitions a pole items. Vyberte si tú, ktorú očakáva váš validátor.
Čo sa stane s vlastnosťami označenými znakom '?'?
Sú vynechané z poľa required v schéme, takže vygenerovaná schéma zodpovedá vlastnej predstave TypeScript-u o tom, ktoré polia sú voliteľné.
Prečo sa niektoré polia skončia ako prázdna schéma {}?
To sa stane pri konštrukciách, ktoré JSON Schema nemôže vyjadriť, ako je parameter generického typu alebo typ, ktorý nástroj nemohol vyriešiť. Pod výsledkom je pridané varovanie, ktoré presne vysvetľuje, ktoré pole a prečo.
Je môj kód TypeScript nahrávané niekam?
Nie. Konverzia prebieha úplne vo vašom prehliadači — vaše definície typov a vygenerovaná schéma nikdy neopúšťajú vaše zariadenie.