Yup无效的简单对象架构验证

联合创作 · 2023-09-22 01:51

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 }
浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报