Генератор тестового JSON из TypeScript
Вставьте интерфейс TypeScript и сгенерируйте реалистичный тестовый JSON, соответствующий ему, прямо в вашем браузере. Ваш код остаётся на вашем устройстве.
Ваш интерфейс TypeScript разбирается и мокается локально в вашем браузере и никогда не загружается, а сгенерированные данные — это случайные образцы, а не реальные записи.
Уже есть JSON? Превратите его в TypeScript с помощью JSON to TypeScript.
Об инструменте TypeScript в тестовый JSON
Этот инструмент TypeScript в тестовые данные берёт интерфейс или псевдоним типа, который вы вставляете, и генерирует реалистичный тестовый JSON, соответствующий его форме. Он читает структуру типа и выбирает фейковое значение для каждого свойства, ориентируясь как на имя поля, так и на объявленный тип: поле email становится правдоподобным email, name становится полным именем, createdAt становится датой ISO, id становится UUID или числом, а обычные строки становятся словами. Вложенные интерфейсы, встроенные объекты, массивы, объединения строковых литералов, необязательные члены и Date — всё обрабатывается, а вы управляете тем, сколько объектов производить и появляются ли необязательные поля. Используйте его, чтобы заполнить тесты, прототипировать ответы API или наполнить интерфейс образцами данных вместо ручного написания фикстур. Всё работает в вашем браузере, поэтому вставленный интерфейс обрабатывается локально и никогда не покидает ваше устройство.
Возможности
- Читает любой интерфейс TypeScript или псевдоним типа и выводит соответствующую форму JSON
- Выбирает фейковые значения по имени поля — email, name, phone, url, uuid, date и другие
- Возвращается к объявленному типу, когда нет подсказки по имени (string, number, boolean, null)
- Рекурсивно обрабатывает вложенные интерфейсы, встроенные типы объектов и ссылочные типы
- Разворачивает поля-массивы вроде tags: string[] в несколько сгенерированных элементов
- Выбирает одну ветвь объединения строковых литералов, например 'admin' | 'editor'
- Переключение необязательных полей (prop?:) и генерация 1 объекта или массива из многих
- Копирование JSON или скачивание его как файла .json в один клик
Как использовать TypeScript в тестовый JSON
- Вставьте интерфейс TypeScript или псевдоним типа в поле ввода.
- Задайте, сколько объектов генерировать и включать ли необязательные поля.
- Если вы вставили несколько интерфейсов, выберите, какой использовать как корневой.
- Прочитайте сгенерированный тестовый JSON справа, затем скопируйте его или скачайте файл .json.
Пример
Ввод
interface User {
id: number;
fullName: string;
email: string;
role: 'admin' | 'editor' | 'viewer';
tags: string[];
}
Результат
{
"id": 4821,
"fullName": "Ada Lovelace",
"email": "ada.lovelace@example.com",
"role": "editor",
"tags": [
"design",
"api"
]
}
Имена полей направляют фейковые значения, а поле-объединение разрешается в один из своих членов.
Частые ошибки и устранение неполадок
- Вывод показывает «No TypeScript interface or type alias found». — Вставьте настоящее объявление, например interface User { id: number } или type User = { id: number }; голое значение или выражение не имеет формы для мока.
- Ссылочный тип выходит как обычное слово вместо вложенного объекта. — Включите ссылочный интерфейс в ту же вставку. Только типы, определённые во вставленном исходнике, можно развернуть; неизвестные или импортированные типы возвращаются к строке.
- enum или сложный сопоставленный тип не разворачивается так, как вы ожидаете. — Преобразуйте enum в объединение строковых литералов (например, 'a' | 'b'), чтобы можно было выбрать член; необычные конструкции возвращаются к правдоподобной строке.
- Необязательные поля всё время появляются (или никогда не появляются). — Используйте переключатель Optionals. Когда он выключен, каждый член prop?: опускается; когда включён, необязательные члены всегда включаются.
Часто задаваемые вопросы
- Как типы полей TypeScript превращаются в фейковые значения?
- Каждое свойство сопоставляется сначала по имени — email, name, phone, url, uuid, createdAt и подобные подсказки сопоставляются с соответствующими фейковыми данными — иначе по объявленному типу, поэтому string, number, boolean и null каждый получают разумное сгенерированное значение.
- Поддерживает ли он вложенные интерфейсы, массивы и объединения?
- Да. Вложенные интерфейсы и встроенные типы объектов разворачиваются рекурсивно, типы-массивы вроде string[] становятся несколькими сгенерированными элементами, а объединение строковых литералов, например 'admin' | 'editor', разрешается в один из своих членов.
- Могу ли я сгенерировать массив из многих объектов сразу?
- Да. Задайте количество объектов больше 1, и инструмент вернёт массив JSON из такого числа сгенерированных объектов; количество 1 возвращает один объект, а не массив.
- Как обрабатываются необязательные свойства?
- Члены, помеченные как необязательные через prop?:, управляются переключателем Optionals. Включите его, чтобы всегда их включать, или выключите, чтобы опустить каждое необязательное поле из вывода.
- Что происходит с полем Date или меткой времени ISO?
- Тип Date, а также подсказки по имени вроде createdAt, updatedAt или timestamp, дают строку даты ISO 8601, чтобы тестовый JSON оставался корректным и легко разбираемым.
- Отправляется ли куда-либо вставленный мной TypeScript?
- Нет. Интерфейс разбирается, а тестовый JSON генерируется полностью в вашем браузере, поэтому вставленный код обрабатывается локально и никогда не покидает ваше устройство.
Связанные инструменты
Все инструменты ArrayKit