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` или отправьте прямо в другой инструмент, чтобы продолжить работу.