Schema 工具函数文档
更新时间: 2025-12-25
📑 目录
Schema 复用
直接复用(最简单)✅
优点: 最简单,直接使用 JavaScript 对象展开
函数复用(需要参数时)
优点: 支持参数化,灵活性强
字段库复用(大型项目)
优点: 统一管理,易于维护
Schema 合并
createLibrary() - 创建片段库
说明: createLibrary() 只是返回片段工厂集合,适合在大型项目中集中管理字段和组合片段。
extend() - 扩展Schema(继承)
说明: 类似继承,保留基础Schema的所有字段
Schema 筛选
pick() - 选择字段
用途: 从完整Schema中提取部分字段(如公开信息)
omit() - 排除字段
用途: 移除敏感字段(如密码)
partial() - 将字段改为可选
也可以只对部分字段做可选化:
Schema 导出
toMarkdown() - 导出为Markdown文档
输出:
用途: 生成API文档
toHTML() - 导出为HTML表格
用途: 集成到Web文档
性能监控
validateBatch() - 批量验证统计
说明:
- 如果你只需要“每条是否通过”的结果,可直接使用
validator.validateBatch(schema, items) - 如果你还需要汇总统计信息,再使用
SchemaUtils.validateBatch(schema, items, validator.getAjv())
withPerformance() - 给 Validator 添加性能包装
用途: 在不改业务调用方式的前提下,为验证结果附加耗时信息
其他工具
clone() - 深度克隆Schema
validateNestingDepth() - 检查嵌套深度
说明: 这个能力属于 DslBuilder 静态方法,不是 SchemaUtils 的成员;这里一并列出是因为它常与 Schema 工具链一起使用。
完整示例
企业级字段库
最佳实践
1. 小项目:直接复用
2. 中型项目:函数复用
3. 大型项目:字段库
相关文档
对应示例文件
示例入口: schema-utils.ts
说明: 覆盖 reusable()、createLibrary()、extend()、validateBatch()、withPerformance() 和 clone() 的最小工作流。
最后更新: 2026-05-08