TL;DR
TypeScript のソースコードから JSON Schema を生成するライブラリ。
仕組み
TypeScript のプログラムをコンパイルして型の情報をすべて取り出し、型、必須のプロパティ、extends、注釈、プロパティの初期値(デフォルト値になる)をスキーマに変換する。JSDoc のコメントに @minimum 0 や @TJS-type integer のように書くと、JSON Schema のキーワードを足せる。
例
CLI では、tsconfig か対象のファイルと、型の名前を渡す。型の名前に "*" を渡すとすべての型を変換する。
typescript-json-schema project/directory/tsconfig.json TYPEプログラムから使うこともできる。
import * as TJS from "typescript-json-schema"
const program = TJS.getProgramFromFiles([resolve("my-file.ts")])
const schema = TJS.generateSchema(program, "MyType", { required: true })注意点
README によると、このライブラリはほぼメンテナンスモードである。より完全なものとして ts-json-schema-generator を勧めている。
関連
- json-schema-to-typescript: 逆に JSON Schema から TypeScript の型を生成する
- Ajv