jsonschema - JSON Schema-objekt till Typescript-typ på direkten


Jag vill i princip göra något sådant:

const jsonSchema = {...} as const;

type SchemaType = JsonSchemaToType<typeof jsonSchema>;

så att jag kan göra:

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

så att man har schemavalidering samt TypeScript-typning baserat på samma schema, helst direkt.

Det bör i princip göra samma sak som detta webverktyg: https://transform.tools/json-schema-to-typescript men direkt i min kod.

Om det inte är möjligt i vanlig TypeScript, skulle ett plugin för webpack också hjälpa

Svar #1

Hittade ett bibliotek som faktiskt gör jobbet: 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)
   ...
}

Relaterade artiklar