Přeskočit na obsah
100% lokálně

Typ TypeScript na JSON Schema

Převeďte rozhraní nebo alias typu TypeScript na JSON Schema.

Vstup
Výstup

Typ TypeScript na JSON Schema

Vložte rozhraní nebo alias typu TypeScript a tento nástroj vygeneruje ekvivalentní JSON Schema, který je připraven k ověřování datových zátěží API, konfiguračních souborů nebo jakýchkoli jiných JSON dat, která by měla odpovídat vašim definicím typů. Je vytvořen pro vývojáře, kteří již popisují své datové tvary v TypeScriptu a chtějí schéma bez manuálního psaní nebo zapojení kroku v procesu sestavení.

Vyberte si mezi JSON Schema draft-07 a novějším dialektem 2020-12, protože validátory a nástroje se stále liší v tom, který z nich očekávají. Řetězcová sjednocení jako 'active' | 'inactive' se mohou vykreslovat buď jako výčet, nebo jako anyOf konstatních hodnot, a můžete vyžadovat, aby objekty odmítly neznámé vlastnosti, převést komentáře dokumentace do polí popisu, nebo extrahovat pojmenovaná rozhraní do bloku $defs (nebo definitions) odkazovaného pomocí $ref místo vložení všude, kde se používají.

Pole, n-tice, Record a Map typy a sjednocení obsahující null se zpracovávají tak, jak je TypeScript skutečně používá — pole připouštějící null se stane polem typu nebo větvě anyOf, ne tichým vynecháním. Konstrukce bez ekvivalentu v JSON Schema, jako jsou metody, typy funkcí nebo nevyřešené generické parametry, se konvertují co nejvolnější a jsou uvedeny jako varování pod výsledkem, aby se nic neprovádělo bez povšimnutí.

Všechno se spouští lokálně ve vašem prohlížeči; vaše definice typů a vygenerované JSON Schema nejsou nikdy nahrány nikam. Zkopírujte výsledek, stáhněte si jej jako soubor .txt nebo jej odešlete přímo do vstupu jiného nástroje, abyste pokračovali v práci.

Časté dotazy

Které části TypeScriptu může převést?
Rozhraní, aliasy typů, vnořené objektové literály, pole, n-tice, Record/Map/Set, Date, Partial/Required/Pick/Omit a sjednocení včetně řetězcových sjednocení a null. Konstrukce bez ekvivalentu v JSON Schema, jako jsou metody a typy funkcí, jsou přeskočeny a uvedeny jako varování.
Jaký je rozdíl mezi draft-07 a 2020-12?
Oba jsou dialekty JSON Schema. 2020-12 je aktuální a používá $defs a prefixItems pro n-tice, zatímco draft-07 používá definitions a pole items. Vyberte si ten, který váš validátor očekává.
Co se stane s vlastnostmi označenými znakem '?'?
Jsou vynechány z pole required ve schémě, takže vygenerovaná schéma odpovídá vlastnímu pojetí TypeScriptu o tom, která pole jsou volitelná.
Proč se některá pole skončí jako prázdné schéma {}?
To se stane u konstrukcí, které JSON Schema nemůže vyjádřit, jako je parametr generického typu nebo typ, který nástroj nemohl vyřešit. Pod výsledkem je přidáno varovní vysvětlující přesně které pole a proč.
Je můj kód TypeScript nahrán někam?
Ne. Konverze probíhá zcela ve vašem prohlížeči — vaše definice typů a vygenerované schéma nikdy neopustí vaše zařízení.