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