Przejdź do treści

Schemat Zod na typ TypeScript

Konwertuj schemat Zod na pasujący interfejs lub typ TypeScript bezpośrednio bez dodatkowych kroków.

Wejście
Wynik

Schemat Zod na typ TypeScript

Wklej schemat Zod — definicję `z.object({...})`, opcjonalnie przypisaną do `const` — a to narzędzie wygeneruje interfejs TypeScript lub alias typu, który by `z.infer` utworzył. Przydatne, gdy schemat jest źródłem prawdy i chcesz pasujący typ statyczny bez uruchamiania kroków kompilacji lub CLI codegenu: do szybkiego sprawdzenia podczas pisania kodu walidacji, do dokumentacji kształtu API z jego schematu Zod, lub do przeniesienia schematu do bazy kodu, która wymaga tylko typów.

Opcje wyjścia kontrolują kształt wygenerowanego kodu. Wybierz między `interface` a `type` alias (schemat bez obiektu, taki jak gołe unia lub ciąg, zawsze staje się aliasem typu, ponieważ interfejsy TypeScript mogą opisywać tylko kształty obiektów) i czy deklaracja jest `export`owana. Pola opcjonalne mogą być renderowane jako znak zapytania (`field?: string`) lub jako jawna unia `string | undefined`. Oddzielny przełącznik utrzymuje członków `z.enum` jako unię literalną zamiast ich zwijania na `string`, a inny zmienia wywołania `.describe("...")` na blok komentarza nad każdym polem.

Zagnieżdżone obiekty, tablice, krotki, unie, przecięcia, rekordy, mapy i zbiory całe są konwertowane na ich TypeScript równoważniki, a wspólne połączenia w łańcuch, które tylko dodają walidację w czasie wykonywania — `.min()`, `.email()`, `.refine()`, `.default()` i podobne — są rozpoznawane i pomijane zamiast przerywać konwersję. Schematy rekurencyjne zbudowane z `z.lazy(() => Schema)` są rozwiązywane z powrotem do typu samoreferencyjnego, gdy pasujące `const` jest częścią tego samego wejścia; wyłącz tę opcję, aby zamiast tego zobaczyć `any`. Koniec wiersza Windows i Unix są obsługiwane w ten sam sposób, a licznik pod wyjściem raportuje, ile deklaracji i pól zostało wygenerowanych.

Wszystko działa w Twojej przeglądarce. Schemat, który wklejasz, nigdy nie jest przesyłany nigdzie, więc bezpiecznie go używać z kodem walidacji niejawnego API. Skopiuj wynik, pobierz go jako plik `.txt` lub wyślij go bezpośrednio do innego narzędzia, aby kontynuować pracę.

Częste pytania

Którą wersję Zoda to obsługuje?
Powszechne funkcje fabryk i metody łańcuchowe z Zod v3 i v4 — obiekty, tablice, unie, rekordy i reszta. Transformacje i rafinacje niestandardowe są analizowane i pomijane, ponieważ ich wpływ na typ nie może być wnioskowany z samego tekstu schematu.
Co się dzieje z `.refine()`, `.transform()` i podobnymi wywołaniami?
Są rozpoznawane i ignorowane: narzędzie zachowuje typ, który schemat miał przed wywołaniem, ponieważ nie może ocenić arbitralnej funkcji, aby dowiedzieć się, jak transformacja zmieni kształt.
Czy może obsłużyć schemat podzielony na wiele deklaracji const?
Tak. Każdy zadeklarowany schemat w wejściu jest konwertowany na swój własny interfejs lub typ w kolejności, w jakiej się pojawiają, tak aby wspólny podschemat odkazywany wg nazwy w innym poprawnie się rozwiązał.
Dlaczego mój schemat wyświetla się jako błąd zamiast konwersji?
Zwykle brakuje nawiasu zamykającego, nawiasu lub cudzysłowu gdzieś w wklejonym kodzie. Sprawdź, czy każdy `z.object({ ... })` i literał tablicy są prawidłowo zamknięte.
Czy mój schemat jest nagrywany gdzieś?
Nie. Konwersja działa całkowicie w Twojej przeglądarce — Twój schemat nigdy nie opuszcza Twojego urządzenia.