Результаты предоставляются исключительно в информационных целях и могут содержать ошибки. Проверяйте важную информацию самостоятельно. Использование этого инструмента осуществляется на ваш страх и риск.
Что делает этот инструмент
Конвертер 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[], потому что выводить тип не из чего.
Этот инструмент бесплатный?
Да, он бесплатный. Без регистрации и электронной почты. Результат на этой странице.
Как получить результат?
Используйте инструмент на этой странице. Результат появится здесь, без отправки по электронной почте.