
架构验证工具包的最新版本 0.9 – ajv-ts 带来了一系列增强功能,以提高开发人员的工作效率并确保更好的验证准确性。无论您是构建复杂的数据模型还是仅处理基本输入,这些更新都有助于通过更强大的功能和示例简化架构定义。以下是此版本中引入的关键更新的概述,以及对版本 0.7.
的重大更改的回顾
更清晰的架构示例
0.9 版的主要更新之一是为每种数据类型引入了模式示例。此功能允许开发人员直接在其架构定义中包含特定示例,从而提供更高的透明度和易用性。您还可以将其与任何参数长度一起使用。
对于字符串:
// valid examples for a string schemaconst mystring = s.string().examples(["hello", "world"]);mystring.schema // // {type: 'string', examples: ['hello', 'world']}s.string().examples("hello", "world"); // oks
对于数字:
// valid examples for a number schemaconst mynum1 = s.number().examples(1, 2, 3);mynum1.schema // {type: 'number', examples: [1,2,3]}// typescript error for invalid number types// @ts-ignore fails ts, but schema still okconst mynum2 = s.number().examples(["abc", "123"]);mynum2.schema // {type: "number", examples: ["abc", "123"] }
此更改有助于验证正确的数据类型并改进代码中的文档,使团队更容易理解期望的值。
更严格的号码验证
还值得强调的是之前版本 0.8 中引入的一些重大更改,这些更改带来了更严格的数字验证:
有道小P
有道小P,新一代AI全科学习助手,在学习中遇到任何问题都可以问我。
64 查看详情
格式和类型强制:此更新引入了更严格的数字格式规则。例如,仅允许整数和浮点数等特定组合,而不正确的格式会导致错误:
s.number().format("float").int(); // error: incompatible format and types.number().int().format("double"); // error: 'double' format not allowed for integers
范围验证:0.8 版的另一个功能是引入了自动范围检查。开发者可以指定数字的最小值和最大值,如果该值超出范围,系统将抛出错误。
s.number().min(5).max(3); // Error: max cannot be smaller than mins.number().min(1).max(10).const(15); // Error: constant is out of specified range
这些增强功能有助于防止架构定义期间出现逻辑错误,并确保数据验证更加一致。
其他变化
使用 github 进行变更集管理更新pnpm版本至9.10.0元方法的元对象更新
结论
release 0.9 和 release 0.8 更新通过提供更好的示例、更严格的验证和增强的错误显着改善了开发人员体验处理——尤其是对于 typescript 用户。这些功能使架构定义更加直观、可靠,并且在复杂项目中更易于维护。请务必探索新功能,以使您的验证工作流程更加高效!
快乐的模式定义!
项目链接:https://github.com/vitalics/ajv-ts
以上就是Ajv-ts 有什么新消息?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/452083.html
微信扫一扫
支付宝扫一扫