Конвертер JSON в TypeScript — Бесплатно онлайн

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

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

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

Конвертер JSON в TypeScript читает образец JSON-объекта и генерирует соответствующие интерфейсы TypeScript. Каждый вложенный объект получает собственный именованный интерфейс, а каждое свойство — тип, выведенный из его значения: string, number, boolean, null, тип массива или другой интерфейс.

Имя интерфейса задаётся в поле «Имя интерфейса». Если JSON — это массив, типы выводятся из его первого элемента, и дополнительно добавляется тип списка вроде type UserList = User[];.

Когда использовать

  • Нужно типизировать ответ API, который вы вызываете из фронтенда на TypeScript или из сервиса на Node.js.
  • Вы хотите построить модель данных на основе реального payload, а не писать интерфейсы вручную.
  • Нужно задокументировать для команды структуру payload вебхука или события.

Пример

Ввод

{"id": 1, "name": "Ana", "active": true, "address": {"city": "Lisbon"}, "tags": ["admin"]}

Вывод

interface Address {
  city: string;
}

interface User {
  id: number;
  name: string;
  active: boolean;
  address: Address;
  tags: string[];
}

Вопросы об этом инструменте

Распознаются ли необязательные свойства?

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

Какой тип получает null?

Значение, равное null в образце, получает тип null. Если в поле может быть значение, замените тип на объединение, например string | null.

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

Тип элемента становится объединением, например (string | number)[]. Пустой массив получает тип unknown[], потому что выводить тип не из чего.

Этот инструмент бесплатный?

Да, он бесплатный. Без регистрации и электронной почты. Результат на этой странице.

Как получить результат?

Используйте инструмент на этой странице. Результат появится здесь, без отправки по электронной почте.