使用情景:
1、表单校验、但推荐使用在较为简单的表单校验
ts文件
const lowType = z
.number()
.or(z.string().min(1, { message: "请输入下限值" }))
.pipe(z.coerce.number({ invalid_type_error: "下限请填写数字" }))
.refine(
v => {
return v >= 0;
},
{ message: "下限请填写大于等于0的数" }
),
upType = z
.number()
.or(z.string().min(1, { message: "请输入上限值" }))
.pipe(z.coerce.number({ invalid_type_error: "上限请填写数字" }))
.refine(
v => {
return v >= 0;
},
{ message: "上限请填写大于等于0的数" }
);
const scheme = z.array(
z.object({
warning_lower_limits: lowType,
warning_upper_limits: upType,
alarm_lower_limits: lowType,
alarm_upper_limits: upType,
top_alarm_lower: lowType,
top_alarm_upper: upType,
})
)
type schemeType = z.input<typeof scheme>;
export const validate = (lowUpObject: schemeType ) => {
const res = scheme.safeParse(lowUpObject);
return res;
};
//校验时使用
const res = validate(formData.value); //fromData 为表单数据、可根据res 返回进行相关的操作