Перейти к содержимому
Monu Tools

JSON в TypeScript

Генерируйте TypeScript-интерфейсы из образца JSON с вложенными типами, массивами и опциональными полями. Работает в браузере.

Как использовать JSON в TS

  1. 01

    Вставьте JSON-объект или массив.

  2. 02

    При желании укажите имя корневого интерфейса.

  3. 03

    Скопируйте сгенерированные TypeScript-интерфейсы.

Что делает генератор

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

Он сильно экономит время, когда вы работаете с API или файлом конфигурации: вставьте ответ, при желании задайте имя корневого интерфейса и скопируйте чистый TypeScript прямо в свой код.

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

Как он обрабатывает реальные структуры

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

Необязательные поля в смешанных массивах

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

Он выводит типы, но не навязывает схему

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

Часто задаваемые вопросы

Как обрабатываются вложенные объекты?

Каждый вложенный объект становится отдельным именованным интерфейсом, на который ссылается родительский -- результат чистый и повторно используемый.

Что происходит с массивами разных форм?

Массивы объектов объединяются в один интерфейс, а ключи, отсутствующие в некоторых элементах, помечаются опциональными. Массивы смешанных примитивов получают тип объединения элементов.

Загружается ли мой JSON куда-либо?

Нет. Типы генерируются полностью в браузере, поэтому данные никогда не покидают устройство.

Источники

Сообщить о проблеме