playground
See a check run.
This runs t12n's actual runtime in your browser. The User type
below is fixed (its schema is normally derived at build), but the
data is yours to edit — change it, hit Validate, and watch
the result. A mismatch gives you the same path-aware
ValidationError you'd get in a real app.
The typeread-only
type User = {
id: number
name: string
email: string
role: 'admin' | 'user'
address: { zip: string }
} Your data
Derived schema
{ kind: 'object', properties: {
id: { kind: 'number' },
name: { kind: 'string' },
email: { kind: 'string' },
role: { kind: 'enum', values: ['admin', 'user'] },
address: { kind: 'object', properties: { zip: { kind: 'string' } } },
} } Console
Hit “Validate” — the result shows here (and in the browser console).