Preskoči na sadržaj
100% lokalno

TypeScript tip u JSON Schema

Pretvori TypeScript sučelje ili alias tipa u JSON Schema.

Unos
Rezultat

TypeScript tip u JSON Schema

Zalijepite TypeScript sučelje ili alias tipa i ovaj alat generira ekvivalentnu JSON Schema, spremnu za validaciju API payloada, datoteka konfiguracije ili bilo kojeg drugog JSON podatka koji bi trebao odgovarati vašim definicijama tipova. Napravljen je za programere koji već opisuju oblike svojih podataka u TypeScript-u i žele shemu bez ručnog pisanja od nule ili postavljanja build koraka.

Odaberite između JSON Schema draft-07 i novije 2020-12 dijalekta, jer se validatori i alati još uvijek razlikuju oko koji očekuju. String-literalne unije poput 'active' | 'inactive' mogu se prikazati kao enum ili kao anyOf konstanti vrijednosti, a možete zahtijevati da objekti odbijaju nepoznata svojstva, okrenuti doc komentare u polja opisa ili izdvojiti nazvana sučelja u blok $defs (ili definitions) na koji se poziva putem $ref umjesto da budu ugrađena svugdje gdje se koriste.

Nizovi, tuple-i, Record i Map tipovi, te unije koje uključuju null, sve se obrađuju onako kako TypeScript zapravo koristi — nullable polje postaje niz tipa ili anyOf grana umjesto da se tiho ispušta. Konstrukti koji nemaju ekvivalent u JSON Schema, poput metoda, tipova funkcija ili nerazriješenih generičkih parametara, konvertiraju se što je permisivnije moguće i navedeni su kao upozorenja ispod rezultata kako ništa ne bi tiho propalo.

Sve se izvršava lokalno u vašem pregledniku; vaše definicije tipova i generirana shema nikada se nigdje ne šalju. Kopirajte rezultat, preuzmite kao .txt datoteku ili ga pošaljite ravno u unos drugog alata da nastavite s radom.

FAQ

Koje dijelove TypeScript-a može konvertirati?
Sučelja, alias tipove, ugniježđene object literale, nizove, tuple-e, Record/Map/Set, Date, Partial/Required/Pick/Omit, te unije uključujući stringove-literalne unije i null. Konstrukti koji nemaju ekvivalent u JSON Schema, poput metoda i tipova funkcija, preskačaju se i navedeni su kao upozorenja.
Koja je razlika između draft-07 i 2020-12?
Oba su JSON Schema dijalekta. 2020-12 je noviji i koristi $defs i prefixItems za tuple-e, dok draft-07 koristi definitions i niz items. Odaberite onaj koji vaš validator očekuje.
Što se dogodi sa svojstvima označenim sa '?'?
Izostavlja se iz niza required sheme, tako da generirana shema odgovara vlastitoj ideji TypeScript-a o kojima su polja opcionalna.
Zašto neka polja završe kao prazna shema {}?
To se dogodi za konstrukte koje JSON Schema ne može izraziti, kao što su parametri generičkog tipa ili tip koji alat nije mogao razriješiti. Upozorenje se dodaje ispod rezultata objašnjavajući točno koje polje i zašto.
Je li moj TypeScript kod učitan negdje?
Ne. Konverzija se potpuno odvija u vašem pregledniku — vaše definicije tipova i generirana shema nikada ne napuštaju vaš uređaj.