Перейти до вмісту

Zod схема у тип TypeScript

Перетворіть визначення схеми Zod у відповідний інтерфейс TypeScript або тип.

Введення
Вихід

Zod схема у тип TypeScript

Вставте схему Zod — визначення `z.object({...})`, опціонально призначене змінній `const` — і цей інструмент виводить інтерфейс TypeScript або alias типу, який видав би `z.infer`. Це корисно, коли схема є джерелом істини і вам потрібен відповідний статичний тип без виконання кроку збірки або CLI codegen: для швидкої перевірки коректності при написанні коду валідації, для документування форми API зі схеми Zod, або для переносу схеми в кодову базу, якій потрібні лише типи.

Опції виводу керують формою згенерованого коду. Виберіть між `interface` та `type` alias (схема, що не є об'єктом, така як простий union або рядок, завжди стає type alias, оскільки інтерфейси TypeScript можуть описувати лише форми об'єктів), та чи експортується оголошення. Необов'язкові поля можуть відображатися як знак питання (`field?: string`), або як явний union `string | undefined`. Окремий перемикач зберігає членів `z.enum` як літеральний union замість їх згортання в `string`, а інший перетворює виклики `.describe("...")` у блок коментаря над кожним полем.

Вкладені об'єкти, масиви, кортежі, unions, перетини, записи, карти та набори всі перетворюються на еквіваленти TypeScript, а звичайні ланцюги викликів, які лише додають валідацію під час виконання — `.min()`, `.email()`, `.refine()`, `.default()` та інші — розпізнаються та пропускаються, а не порушують перетворення. Рекурсивні схеми, побудовані з `z.lazy(() => Schema)`, розв'язуються назад у самопосилаючийся тип, коли відповідний `const` є частиною того ж введення; вимкніть цей параметр, щоб замість цього побачити `any`. Переноси рядків Windows та Unix обробляються однаково, а підсумкова рядок під виводом повідомляє, скільки оголошень та полів було згенеровано.

Все працює у вашому браузері. Схема, яку ви вставляєте, ніколи не завантажується кудись, тому її безпечно використовувати з кодом валідації неопублікованого API. Скопіюйте результат, завантажте його як файл `.txt` або відправте прямо в інший інструмент, щоб продовжити роботу.

FAQ

Яку версію Zod це підтримує?
Загальні функції-фабрики та методи ланцюга з Zod v3 та v4 — об'єкти, масиви, unions, записи та решта. Користувацькі трансформації та уточнення аналізуються та пропускаються, оскільки їхній вплив на тип не може бути визначений лише з тексту схеми.
Що відбувається з викликами .refine(), .transform() та подібними?
Вони розпізнаються та ігноруються: інструмент зберігає тип, який була схема до виклику, оскільки він не може обчислити довільну функцію, щоб дізнатися, як трансформація змінює форму.
Чи може він обробити схему, розділену на кілька оголошень const?
Так. Кожна оголошена схема на введенні перетворюється на свій власний інтерфейс або тип в порядку появи, тому спільна підсхема, на яку посилаються за іменем в іншій, розв'язується правильно.
Чому моя схема показує помилку замість перетворення?
Зазвичай це відсутність закриваючої дужки, круглої дужки або лапок десь у вставленому коді. Перевірте, що кожен z.object({ ... }) та литерал масиву правильно закриті.
Моя схема завантажується кудись?
Ні. Перетворення виконується повністю у вашому браузері — ваша схема ніколи не залишає ваш пристрій.