Ga naar inhoud
100% lokaal

Zod-schema naar TypeScript-type

Converteer Zod-schemadefinities naar TypeScript-interfaces of type-aliases. Genereer de exacte type die z.infer voor uw schema zou produceren.

Invoer
Uitvoer

Zod-schema naar TypeScript-type

Plak een Zod-schema in — een `z.object({...})`-definitie, eventueel toegewezen aan een `const` — en dit hulpmiddel geeft de TypeScript-interface of type-alias uit die `z.infer` ervoor zou produceren. Het is nuttig wanneer het schema de bron van waarheid is en u het overeenkomstige statische type wilt zonder een buildstap of CLI-codegen: voor snelle sanity checks bij het schrijven van validatiecode, voor het documenteren van een API's vorm vanuit het Zod-schema, of voor het porteerbaar maken van een schema naar een codebase die alleen de types nodig heeft.

De uitvoeropties bepalen de vorm van de gegenereerde code. Kies tussen een `interface` en een `type`-alias (een niet-object-schema, zoals een loutere union of string, wordt altijd een type-alias, omdat TypeScript-interfaces alleen objectvormen kunnen beschrijven), en of de declaratie `export`eerd is. Optionele velden kunnen worden weergegeven als een vraagteken (`field?: string`) of als een expliciete `string | undefined`-union. Een aparte schakelaar houdt de leden van `z.enum` als een letterlijke union in plaats van ze in te storten tot `string`, en een ander verandert `.describe("...")`-aanroepen in een docblock-opmerking boven elk veld.

Gevormde objecten, arrays, tuples, unions, intersecties, records, maps en sets converteren allemaal naar hun TypeScript-equivalenten, en veel voorkomende kettingoproepen die alleen runtime-validatie toevoegen — `.min()`, `.email()`, `.refine()`, `.default()` en dergelijke — worden herkend en overgeslagen in plaats van de conversie te breken. Recursieve schemas die zijn gebouwd met `z.lazy(() => Schema)` worden opgelost naar een zelf-referentiserend type wanneer de overeenkomstige `const` deel van dezelfde invoer uitmaakt; schakel die optie uit om in plaats daarvan `any` te zien. Windows- en Unix-regeleinden worden op dezelfde manier afgehandeld, en de teller onder de uitvoer meldt hoeveel declaraties en velden zijn gegenereerd.

Alles wordt in uw browser uitgevoerd. Het schema dat u plakt, wordt nooit ergens geüpload, dus het is veilig om te gebruiken met validatiecode van een onuitgebrachte API. Kopieer het resultaat, download het als een `.txt`-bestand, of stuur het rechtstreeks naar een ander hulpmiddel om verder mee te werken.

FAQ

Welke Zod-versie wordt ondersteund?
De algemene factory-functies en ketaanroepen uit Zod v3 en v4 — objecten, arrays, unions, records en meer. Aangepaste transforms en refinements worden geparsed en overgeslagen, omdat hun effect op het type niet alleen uit de scheematekst kan worden afgeleid.
Wat gebeurt er met .refine(), .transform() en vergelijkbare aanroepen?
Ze worden herkend en genegeerd: het hulpmiddel behoudt het type dat het schema had vóór de oproep, omdat het geen willekeurige functie kan evalueren om te weten hoe een transformatie de vorm verandert.
Kan het een schema verwerken dat over meerdere const-declaraties is verdeeld?
Ja. Elk gedeclareerd schema in de invoer wordt geconverteerd naar zijn eigen interface of type, in de volgorde waarin het verschijnt, dus een gedeeld subschema dat in een ander met de naam wordt gebruikt, wordt correct opgelost.
Waarom toont mijn schema een fout in plaats van te converteren?
Meestal mist ergens in de geplakte code een sluitende accolade, haakje of aanhalingsteken. Controleer of elk z.object({ ... }) en array-letterlijke is correct gesloten.
Wordt mijn schema ergens geüpload?
Nee. De conversie wordt volledig in uw browser uitgevoerd — uw schema verlaat nooit uw apparaat.