Skip to content

validate

数据验证工具,支持链式调用多个验证规则。

函数签名

typescript
function validate<T>(
  value: T,
  rules: ValidationRule<T>[]
): ValidationResult

type ValidationRule<T> = (value: T) => boolean | string

interface ValidationResult {
  valid: boolean
  errors: string[]
}

参数

参数名类型必填说明
valueT要验证的值
rulesValidationRule<T>[]验证规则数组

返回值

类型说明
ValidationResult验证结果对象,包含 validerrors

工作原理

  1. 初始化错误数组
  2. 遍历所有验证规则:
    • 执行规则函数,传入要验证的值
    • 如果返回 false:添加通用错误信息
    • 如果返回字符串(错误信息):添加该错误信息
    • 如果返回 true:继续下一个规则
  3. 返回验证结果:
    • valid: errors 数组是否为空
    • errors: 所有错误信息数组

示例

typescript
const result = validate('abc', [
  (v) => v.length >= 5 || '长度至少5个字符',
  (v) => /\d/.test(v) || '必须包含数字'
])

// result = {
//   valid: false,
//   errors: ['长度至少5个字符', '必须包含数字']
// }

支持自定义验证规则,规则可返回 boolean 或错误信息字符串。