Конвертер JSON в TypeScript
Преобразуйте образец JSON в интерфейсы или псевдонимы типов TypeScript. Определяет примитивные, массивные и вложенные объектные типы, объединяет массивы объектов в один интерфейс с необязательными ключами и позволяет задать имя корневого типа.
Ввод
Имя верхнего интерфейса/типа. Преобразуется в PascalCase.
Как типизируется null в JSON. Пустые массивы всегда становятся unknown[].
Вывод
Руководства
Вставьте образец JSON и получите готовые к использованию интерфейсы или псевдонимы типов TypeScript, описывающие его структуру. Конвертер анализирует JSON, определяет тип каждого значения и сам даёт имена вложенным структурам — никакой ручной работы и догадок. Это самый быстрый способ превратить ответ API, файл конфигурации или фикстуру в типизированный код.
Что он делает
Инструмент читает JSON и создаёт соответствующие определения TypeScript:
- Примитивы отображаются на
string,numberиboolean. - Вложенные объекты становятся отдельными именованными
interface, на которые ссылается родитель (например,address: Address). - Массивы примитивов становятся
T[], а неоднородные массивы — объединением, например(number | string)[]. - Массивы объектов сводятся к одному интерфейсу, который объединяет все ключи, встречающиеся у элементов. Ключ, отсутствующий хотя бы у одного элемента, помечается необязательным с помощью
key?:. - Значения
nullрасширяются доnull(илиundefined— на ваш выбор) вместо того, чтобы ломать вывод. - Пустые массивы становятся
unknown[], поскольку выводить нечего.
Как использовать
- Вставьте или введите JSON в поле ввода.
- Задайте имя корневого типа — оно задаёт имя интерфейса верхнего уровня (по умолчанию
Root, преобразуется в PascalCase). - Выберите стиль вывода: псевдоним
interfaceилиtype. - Укажите, как типизировать значения null (
nullилиundefined). - Скопируйте сгенерированный TypeScript или скачайте его как
interfaces.ts.
Вывод обновляется автоматически при редактировании, поэтому вы можете менять JSON и видеть, как типы изменяются в реальном времени.
Что выбрать — interface или type?
Интерфейсы — традиционный выбор для форм объектов и поддерживают объединение объявлений; псевдонимы типов удобны, когда нужно скомпоновать или экспортировать форму вместе с объединениями и вспомогательными типами. Сгенерированные члены идентичны, поэтому выбирайте то, что подходит вашей кодовой базе. Между ними можно переключаться в любой момент.
Как обрабатываются массивы объектов?
Каждый объект в массиве сканируется, и их ключи объединяются в один интерфейс. Ключ, присутствующий у части элементов, но не у всех, делается необязательным (key?:). Обычно это именно то, что нужно для массивов из реальных API, где записи не полностью однородны.
Что происходит со смешанными или пустыми массивами?
Смешанный массив вроде [1, "two"] даёт элемент-объединение: (number | string)[]. В пустом массиве нет элементов для анализа, поэтому он становится unknown[] — безопасно и явно, а позже легко сузить.
Поддерживает ли он глубоко вложенный JSON?
Да. Каждый вложенный объект получает собственный интерфейс, названный по ключу, и эти интерфейсы выводятся вместе с корневым типом, так что вся структура полностью типизирована.
Конфиденциальность
Конвертер полностью работает в вашем браузере. JSON анализируется и преобразуется на вашем устройстве — он никогда не загружается на сервер, не логируется и не сохраняется. Его можно использовать с чувствительными данными и работать офлайн после загрузки страницы.
Use it from code
From 3 credits per callREST API
curl -X POST https://api.iotools.cloud/v1/tool/json-to-typescript-converter \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonInput": "{\"id\":1,\"tags\":[\"admin\",\"user\"],\"scores\":[95,87]…",
"rootName": "Root",
"exportStyle": "interface",
"nullType": "null"
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `json-to-typescript-converter` tool (JSON to TypeScript Converter) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.