Про цей інструмент
Інструмент JSON Schema у TypeScript компілює документ JSON Schema в інтерфейси й псевдоніми типів TypeScript, роблячи те, що робить популярна бібліотека json-schema-to-typescript, без встановлення інструментарію. На відміну від конвертерів зі зразків JSON, цей читає справжню схему: він обходить об'єкт схеми і перетворює type:'object' на інтерфейс, де ключі, перелічені в required, необов'язкові, а решта позначаються ?.
Усе розбирається й генерується локально у вашому браузері за допомогою JSON.parse і звичайного JavaScript, тож ваша схема ніколи не залишає сторінку. Строкові схеми з enum стають об'єднанням рядкових літералів; звичайні string, number/integer, boolean і null зіставляються зі своїми еквівалентами TypeScript; масиви стають T[] (кортеж, коли items є масивом). Комбінатори підтримуються — allOf стає перетином (A & B), а anyOf / oneOf стають об'єднаннями (A | B) — і nullable type:[T,'null'] стає T | null.
Посилання розв'язуються за назвою: $ref, що вказує на #/definitions/X чи #/$defs/X, видає іменоване посилання на тип, і кожне визначення генерується як власний export interface чи export type. additionalProperties додає сигнатуру індексу [key: string]: T. Назва кореневого типу за замовчуванням береться з title чи $id схеми. Перемикайте вивід interface чи type і те, чи стають рядки description схеми коментарями JSDoc /** */. Скопіюйте результат або завантажте файл .ts.