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` або відправте прямо в інший інструмент, щоб продовжити роботу.