imo: 如果你可以选择,推荐使用 zod.dev 作为 JS/TS validation library。
Nest.js Validation Tips:
@IsInt()
, don't use ParseIntPipe
@IsDateString()
, don't use @IsDate()
@IsOptional()
, since TypeScript ? doesn't work@Type(() => Number)
instead of Number(str)
, use @Int
instead of parseInt(str)
推荐直接使用 class-transformer-validator,
npm install class-transformer-validator --save
因为单独使用 class-validator 和 class-transformer 让人沮丧。
@IsOptional() 和 ? 让人困惑。
可选属性用 library 还是 TypeScript 呢?
@IsInt()
@IsOptional()
offset: number;
@IsInt()
limit?: number;
@Type(() => Date) 和 :string 也让人困惑。
类型转换用注解还是代码呢?
@IsDate()
@Type(() => Date)
dateFrom: string;
@IsDateString()
dateTo: Date;
refs