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 を勧めている。

関連

出典