Skip to content

🆚 Why drea

dreaJoiYupZodAJV
Rule syntaxPlain function, RegExp, or NoneChainable DSLChainable DSLChainable DSLJSON Schema spec
TypeScript types✅ Bundled in v4Via @typesVia @typesBuilt-inVia @types
Type-narrowing guardsasserts value is TPartial (parse-based)
DependenciesZeroSeveralSeveralZeroSeveral
Partial-payload matching✅ AutomaticNeeds .optional()Needs .optional()Needs .optional()Needs "required" array
Runtime schema mutationextend() remove() swap()
"Expected X, got Y" messages✅ Every guardPartial
Recursive nested schemasnestvalidate()
Skip validation sentinelNone
File validation helper__File()