YamlBox

Генераторы кода

Генератор от JSON до TypeScript

Вставьте ответ JSON и получите готовый к вставке ответ TypeScript. Элементы массива объединяются, поэтому обнаруживаются необязательные поля, вложенные объекты становятся именованными интерфейсами, а смешанные типы становятся честными объединениями.

Варианты конвертации

JSON образец

Примеры: Пользовательский объект · Список с необязательными полями —⌘/Ctrl + Enter преобразует · перетаскивает файл, чтобы загрузить его · обрабатывается локально

TypeScript

Вывод доступен только для чтения. Используйте «Копировать», «Загрузить» или «Поделиться», чтобы удалить его.

Как использовать инструмент от JSON до TypeScript

  1. Вставьте реальный ответ

    Используйте полезную нагрузку, включающую необязательные поля и поля, допускающие значение NULL, которые вы действительно видите в рабочей среде — чем репрезентативнее, тем лучше выведенные типы.

  2. Назовите свой тип корня

    Дайте корневому типу имя, которое он имеет в вашей кодовой базе (User, Order, ApiResponse), и выберите интерфейсы или введите псевдонимы в соответствии с вашим руководством по стилю.

  3. Скопируйте в свой проект

    Вставьте результат в файл типов. Для проверки во время выполнения соедините его со схемой JSON или валидатором времени выполнения, например Zod.

Чем отличается этот инструмент

  • Объединяет формы элементов массива и помечает неуниверсальные ключи как необязательные.
  • Объединения для смешанных типов (строка | число, строка | ноль), а не молчание
  • Вложенные объекты, имена которых соответствуют их ключевому пути (адрес, свидетельство,…).
  • Вывод интерфейса или псевдонима типа с настраиваемым корневым именем
  • Дополнительное определение даты ISO для пометки полей меток времени

Конфиденциальность по архитектуре: эта страница не содержит аналитики, которая получает ваши данные, а код преобразования запускается на вашей вкладке. Вы можете отключиться от сети после загрузки и продолжить работу.

от JSON до TypeScript — часто задаваемые вопросы

Как обнаруживаются необязательные поля?

Когда входные данные представляют собой массив объектов, каждое свойство проверяется для каждого элемента. Ключ, отсутствующий в некоторых элементах, помечается необязательным знаком ?, а ключи, присутствующие повсюду, остаются обязательными.

Как поля, допускающие значение NULL, становятся типами?

Значение NULL рассматривается как отдельный тип, поэтому поле, которое иногда является строкой, а иногда и имеет значение NULL, является типизированным string | null — честный тип, а не ложь, которой доверяет ваш компилятор.

Интерфейсы или псевдонимы типов — что выбрать?

Интерфейсы являются более распространенным соглашением и хорошо объединяются в объявлениях; Псевдонимы типов лучше читаются для объединений и пересечений. Функционально для сгенерированных форм данных работает любой вариант — соответствует существующей кодовой базе.

Может ли он генерировать Zod или другие схемы времени выполнения?

Не напрямую. Создайте схему JSON из той же полезной нагрузки и получите валидатор или напишите схему Zod вручную и используйте эти интерфейсы для статической стороны. Типы описывают форму во время компиляции; валидаторы защищают вас во время выполнения.

Работает ли это для больших ответов API?

Да. Вставьте или удалите файл JSON — вложенность определяется рекурсивно. Очень большие полезные нагрузки ограничиваются памятью браузера, а не самим генератором.

Ищете “JSON в ТС”, “json для интерфейса”, “альтернатива быстрому типу”? Вы находитесь в правильном месте — просмотреть все инструменты 19.

Более глубокое чтение

Статья в блоге · 6 минута чтения От JSON до TypeScript: типы, соответствующие реальности Преобразуйте интерфейсы JSON в TypeScript из реального ответа API — необязательные ключи, нулевые объединения, вложенные типы — и не допускайте смещения сгенерированных типов. Читать руководство →