【发布时间】:2022-01-21 11:43:03
【问题描述】:
我有两个验证器类 NameMinLengthValidator 和 NameMaxLengthValidator
import { ValidatorConstraint, ValidatorConstraintInterface, ValidationArguments } from 'class-validator';
@ValidatorConstraint({ name: 'name', async: false })
export class NameMinLengthValidator implements ValidatorConstraintInterface {
validate(text: string, args: ValidationArguments) {
return !!text && 2 <= text.length;
}
defaultMessage(args: ValidationArguments) {
return 'Name must be at least 2 characters.';
}
}
@ValidatorConstraint({ name: 'name', async: false })
export class NameMaxLengthValidator implements ValidatorConstraintInterface {
validate(text: string, args: ValidationArguments) {
return !!text && text.length <= 12;
}
defaultMessage(args: ValidationArguments) {
return 'Name must be max 12 characters.';
}
}
我必须在我想验证这些约束的每个班级中这样做
export class MyRequest {
@Validate(NameMinLengthValidator)
@Validate(NameMaxLengthValidator)
name: string;
}
我想实现类似的东西,如何结合两个验证器?
export class MyRequestCombined {
@Validate(NameLengthValidator)
name: string;
}
【问题讨论】: