Yup无效的简单对象架构验证
Yup 是一个用于数值解析和验证的 JavaScript 模式构建器。定义一个模式,转换一个值来匹配;验证一个现有值的形状,或者两者都是。Yup 模式具有极强的表现力,允许对复杂的、相互依赖的验证或价值转换进行建模。
Yup 的 API 在很大程度上受到 Joi 的启发,但更精简,并以客户端验证作为其主要用例。Yup 将解析和验证功能分为不同的步骤。 cast() 对数据进行转换,而 validate 则检查输入的形状是否正确。每个步骤都可以一起执行(比如 HTML 表单验证)或单独执行(比如从 API 反序列化可信数据)。
import * as yup from 'yup'; let schema = yup.object().shape({ name: yup.string().required(), age: yup.number().required().positive().integer(), email: yup.string().email(), website: yup.string().url(), createdOn: yup.date().default(function () { return new Date(); }), }); // check validity schema .isValid({ name: 'jimmy', age: 24, }) .then(function (valid) { valid; // => true }); // you can try and type cast objects to the defined schema schema.cast({ name: 'jimmy', age: '24', createdOn: '2014-09-23T19:25:25Z', }); // => { name: 'jimmy', age: 24, createdOn: Date }
评论