Off the top of my head, I don't think you can perfectly describe the type (string format) of an UUID in typescript types, which you can do with OpenAPI. That may be a reason.
import { JSONSchemaType } from 'ajv'
It will bridge the JSON Schema and TypeScript types
We've found this useful too:
import { OpenAPIV3_1 as oa } from 'openapi-types'
export type Schema<T> = JSONSchemaType<T> & oa.SchemaObject
We validate that the type aligns with the schema and load the schema to validate all incoming requests