我正在使用带有 NestJS 的 class-validator 包,并且我希望验证一个对象数组,这些对象需要恰好有 2 个具有相同布局的对象:
到目前为止,我有:
import { IsString, IsNumber } from 'class-validator';
export class AuthParam {
@IsNumber()
id: number;
@IsString()
type: string;
@IsString()
value: string;
}
和
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) 似乎与字符串有关...(已解决)