JSON в TypeScript
JSON в TypeScript: Преобразует примеры JSON в интерфейсы и псевдонимы типов TypeScript, автоматически объединяет поля массивов объектов, определяет необязательные поля и объединения с null и генерирует подходящие объявления типов для пустых массивов и объектов. Подходит для моделирования ответов API, подготовки типов на фронтенде и упорядочивания структур данных Всё выполняется локально в браузере.
JSON
Символ
0 / 500,000
TypeScript
Быстрый старт
Частые сценарии
Преобразуйте реальные ответы API в стартовые TypeScript-модели для фронтенд-страниц, SDK-клиентов или интеграционных тестов После этого результат можно сразу скопировать, скачать или экспортировать.
Проверяйте смешанные массивы объектов, чтобы увидеть необязательные поля и объединения типов до фиксации API-контракта После этого результат можно сразу скопировать, скачать или экспортировать.
Преобразуйте тестовые JSON-данные в быстрые определения типов для fixture, историй Storybook или прототипов.
Проверяйте вложенные объявления вроде User и Meta, когда меняется форма backend payload После этого результат можно сразу скопировать, скачать или экспортировать.
Рекомендации по использованию
Ограничения и совместимость
Конфиденциальность и безопасность
Частые вопросы
Корни-объекты создают интерфейсы. Корни-массивы и примитивные значения создают псевдонимы типов. Для массива объектов верхнего уровня корень остаётся псевдонимом типа, например type Root = RootItem[];, а структура элемента объявляется отдельно.
Если в примере нет элементов массива или свойств объекта, генератор не может вывести более узкий тип. Он оставляет пустые массивы как unknown[] и пустые объекты как interface, расширяющий Record<string, unknown>, пока вы не вставите более репрезентативные данные.
Если введённое имя уже является допустимым идентификатором TypeScript, оно сохраняется без изменений, например APIResponse. Некорректные имена перед генерацией нормализуются в стабильный PascalCase-идентификатор.
Текущий генератор нормализует вложенные имена по путям свойств и детерминированно разрешает коллизии. Поэтому новый вывод использует имена вроде User, Meta или FooBarClass, а не всегда добавляет префикс корневого имени.
Текущий контракт вывода намеренно возвращает обычные объявления без export. Это сохраняет нейтральность результата, а вы можете добавить export в стиле своего проекта.