Ga naar inhoud
100% lokaal

TypeScript-type naar JSON Schema

Zet een TypeScript-interface of type alias om in JSON Schema.

Invoer
Uitvoer

TypeScript-type naar JSON Schema

Plak een TypeScript-interface of type alias in, en deze tool genereert het equivalente JSON Schema, klaar om API-payloads, configuratiebestanden of andere JSON-gegevens te valideren die jouw type-definities moeten volgen. Het is gemaakt voor ontwikkelaars die hun gegevensstructuren al in TypeScript beschrijven en een schema nodig hebben zonder het handmatig te schrijven of een build-stap in te richten.

Kies tussen JSON Schema draft-07 en het nieuwere 2020-12-dialect, omdat validators en tools nog steeds verschillen in welke zij verwachten. String-literal unions zoals 'active' | 'inactive' kunnen worden weergegeven als enum of als anyOf van const-waarden, en je kunt objecten dwingen om onbekende eigenschappen af te wijzen, documentatieopmerkingen omzetten in beschrijvingsvelden, of benoemde interfaces extraheren naar een $defs (of definitions) blok waarnaar $ref verwijst in plaats van ze overal in te sluiten.

Arrays, tuples, Record- en Map-types, en unions inclusief null worden op dezelfde manier behandeld als TypeScript ze werkelijk gebruikt — een nullable veld wordt een type-array of anyOf-vertakking in plaats van stilzwijgend verwijderd. Constructen zonder JSON Schema-equivalent, zoals methoden, functietypen of niet-opgeloste generieke parameters, worden zo permissief mogelijk omgezet en opgesomd als waarschuwingen onder het resultaat, zodat niets stilzwijgend mislukt.

Alles draait lokaal in je browser; je type-definities en het gegenereerde schema verlaten je apparaat nooit. Kopieer het resultaat, download het als .txt-bestand, of stuur het rechtstreeks naar de invoer van een ander hulpmiddel om ermee door te werken.

FAQ

Welke delen van TypeScript kunnen worden omgezet?
Interfaces, type aliases, geneste objectliteralen, arrays, tuples, Record/Map/Set, Date, Partial/Required/Pick/Omit en unions inclusief string-literal unions en null. Constructen zonder JSON Schema-equivalent, zoals methoden en functietypen, worden overgeslagen en opgesomd als waarschuwingen.
Wat is het verschil tussen draft-07 en 2020-12?
Beide zijn JSON Schema-dialecten. 2020-12 is het huidige en gebruikt $defs en prefixItems voor tuples, terwijl draft-07 definitions en een items-array gebruikt. Kies degene die je validator verwacht.
Wat gebeurt er met eigenschappen gemarkeerd met '?'?
Ze worden buiten de required array van het schema gelaten, zodat het gegenereerde schema TypeScripts eigen idee weerspiegelt van welke velden optioneel zijn.
Waarom eindigen sommige velden in een leeg schema {}?
Dit gebeurt voor constructen die JSON Schema niet kan uitdrukken, zoals generieke type-parameters of een type dat het hulpmiddel niet kon oplossen. Een waarschuwing onder het resultaat legt exact uit welk veld en waarom.
Wordt mijn TypeScript-code ergens geüpload?
Nee. Conversie vindt volledig in je browser plaats — je type-definities en het gegenereerde schema verlaten je apparaat nooit.