JSON в TypeScript
Вставьте JSON — получите интерфейсы TypeScript, которые не стыдно оставить: вложенные объекты именуются, массивы объединяют типы элементов, одинаковые формы делят одно имя, а null остаётся видимым, не превращаясь в any.
Из одного образца — честно
Вывод из одной нагрузки видит только то, что она показывает: иногда отсутствующее поле выглядит обязательным, число-иногда-строка — числом. Поэтому сгенерированное — первый черновик с готовой структурой: имена, вложенность, массивы, кавычки вокруг враждебных ключей; суждения, которые ни один инструмент не должен выносить молча, остаются вам.
Всё происходит в этой вкладке — и это важно именно потому, что настоящие нагрузки несут настоящие данные: токены, адреса, истории заказов. Codegen-страница, загружающая ваш JSON «на обработку», уже прочла ваши продакшен-данные; эта — структурно не может.
Частые вопросы
Как типизируются массивы?
По всем элементам, а не по первому: [1, 2] становится number[], [1, "x"] — (number | string)[], пустой массив — unknown[]: видимое признание вместо тихого any, выключающего проверки дальше по коду.
Что с повторяющимися формами?
Структурно одинаковые объекты делят один интерфейс: список пользователей даёт единый User, на который ссылаются всюду, — не User, User2, User3. Разные формы с одинаковым именем ключа нумеруются, а не сливаются — слияние прятало бы настоящие различия.
Почему null показан буквально?
Потому что ваш API его действительно шлёт. Поле string | null заставляет вызывающий код обработать случай; поле, тихо расширенное до any, прячет его до продакшена. Если null-поле на самом деле необязательное — ужесточите тип руками: инструмент отказывается гадать.
Умеет ли он помечать поля необязательными по нескольким образцам?
Пока нет — один образец на входе, один честный черновик на выходе. Вставьте массив из нескольких объектов — union-типы уже покажут изменчивые поля; превращение этого в ?-метки — запланированное улучшение.
Похожие инструменты
- Конструктор схем и блок-схемРисуйте блок-схемы и диаграммы, соединяйте блоки стрелками, которые прокладывают себя сами, и раскладывайте всё автоматически. Экспорт в SVG.
- Генератор паролейСоздавайте надёжные пароли криптографическим генератором браузера с оценкой стойкости.
- HTML-сущностиКодируйте текст для HTML или декодируйте сущности обратно — ломающие разметку знаки, именованные наборы, числовые ссылки до эмодзи. Ровно один проход.