Как пользоваться: JSON Schema в TypeScript
- Вставьте свою JSON Schema или объект
components.schemasиз OpenAPI в левое поле. - Укажите имя корневого типа и выберите, использовать
interfaceилиtype. - Типы TypeScript обновляются по мере ввода. Определения из
$defsилиdefinitionsстановятся отдельными именованными типами. - Скопируйте код в файл
.tsили.d.ts.
Как JSON Schema соотносится с TypeScript
| JSON Schema | TypeScript |
|---|---|
"type": "string" / number, integer / boolean / null | string / number / boolean / null |
properties + required | интерфейс с prop и необязательным prop? |
enum, const | объединение литералов: "draft" | "published" |
items, prefixItems | T[], кортежи [A, B] |
additionalProperties (схема) | [key: string]: T |
oneOf / anyOf / allOf | A | B / A | B / A & B |
$ref: "#/$defs/User" | User |
"type": ["string", "null"] | string | null |
Ключевые слова только для валидации, например minLength, pattern или format, в TypeScript не имеют аналогов. При включенном JSDoc они добавляются в комментарий. Внешние URL в $ref типизируются как unknown.
Нужно начать не со схемы, а с примера данных? Используйте JSON в TypeScript. Чтобы проверить данные по схеме, воспользуйтесь валидатором JSON Schema.
Также ищут как: json schema в ts, генерация typescript из json schema, json schema interface, json-schema-to-typescript онлайн, openapi schema в typescript, типы json schema, конвертер json schema.
Инструменты, которые хорошо сочетаются с JSON Schema в TypeScript
- JSON в JSON Schema — Вставьте один или несколько примеров JSON, и вы получите JSON Schema, которая их описывает: вложенные объекты, массивы объектов, объединённые в одну схему элемента, обязательные поля (ключи, присутствующие во всех примерах), распознанные форматы вроде email, date-time, URI и UUID, необязательные enum и вывод в формате 2020-12 или draft-07.
- JSON в типы — Вставьте ответ API и получите готовые модели на 8 языках: TypeScript, Python (dataclass, TypedDict или Pydantic), Go, Java, C#, Kotlin, Swift и Rust.
- JSON форматтер — Вставьте JSON, чтобы отформатировать, минифицировать или проверить его.
- Валидатор OpenAPI / Swagger — Вставьте спецификацию API, чтобы проверить её по официальной схеме OpenAPI, найти битые ссылки и несогласованные параметры пути и увидеть все эндпоинты сразу.