The following is general information for setting up TypeBox
TypeBox requires the following tsconfig.json configuration
// file: tsconfig.json
{
"compilerOptions": {
"strict": true, // Required for Type Inference
"target": "ES2018", // Minimum ES Target
}
}
The following is the recommended setup if using TypeBox with Ajv
import Type from 'typebox'
import addFormats from 'ajv-formats'
import Ajv from 'ajv'
const ajv = addFormats(new Ajv({}), [
'date-time',
'time',
'date',
'email',
'hostname',
'ipv4',
'ipv6',
'uri',
'uri-reference',
'uuid',
'uri-template',
'json-pointer',
'relative-json-pointer',
'regex'
])
// ...
const check = ajv.compile(Type.Object({
x: Type.Number(),
y: Type.Number(),
z: Type.Number()
}))
const R = check({ x: 1, y: 2, z: 3 }) // const R = true