我正在使用带有 NestJS 的类验证器包,并且我希望验证需要恰好有 2 个具有相同布局的对象的对象数组:
到目前为止我有:
import { IsString, IsNumber } from 'class-validator';
export class AuthParam {
@IsNumber()
id: number;
@IsString()
type: string;
@IsString()
value: string;
}
and
import { IsArray, ValidateNested } from 'class-validator';
import { AuthParam } from './authParam.model';
export class SignIn {
@IsArray()
@ValidateNested({ each: true })
authParameters: AuthParam[];
}
根据 @kamilg 回复(我能够执行 2 个元素):
import { IsArray, ValidateNested, ArrayMinSize, ArrayMaxSize } from 'class-validator';
import { AuthParam } from './authParam.model';
export class SignInModel {
@IsArray()
@ValidateNested({ each: true })
@ArrayMinSize(2)
@ArrayMaxSize(2)
authParameters: AuthParam[];
}
我仍然可以传递一个空数组或一个包含与 AuthParam 无关的其他对象的数组。
我应该如何修改它以获得验证?
另外我如何在数组中强制执行 2 个元素? MinLength(2) 似乎与字符串有关...(已解决)