JSON 即时将模式对象转换为 Typescript 类型

JSON Schema object to Typescript Type on the fly

我基本上想做这样的事情:

const jsonSchema = {...} as const;

type SchemaType = JsonSchemaToType<typeof jsonSchema>;

这样我可以做:

export default (input: SchemaType) => {
   validate(input, jsonSchema)
   ...
}

所以有模式验证以及基于相同模式的打字稿输入,理想情况下是即时的。

它基本上应该和这个网络工具一样:https://transform.tools/json-schema-to-typescript 但直接在我的代码中。

如果在普通打字稿中不可能,webpack 的插件也会有帮助

找到一个真正完成这项工作的库:https://www.npmjs.com/package/json-schema-to-ts

import type { FromSchema } from "json-schema-to-ts";
const jsonSchema = {...} as const;

type SchemaType = FromSchema<typeof jsonSchema>;

export default (input: SchemaType) => {
   validate(input, jsonSchema)
   ...
}