- whitelist 如果设置了true,
- forbidNonWhitelisted
?status=
等于=== ''
?status=
等于=== ''
?
等于=== undefined
@Type(() => Number)
status = 0了。
如果该字段的值不会出现null和undefined
skipMissingProperties如果设置为true,在调用接口时不传递该字段,就会跳过检查。
两极分化:
- 查询时:查询条件是可选的
- 新增是:大多数字段都是必填项
为什么?
export class queryUserCouponDto extends ApiPageOptionsDto {
@ApiProperty({
description: '使用状态',
})
@Transform((o) => {
return isNumberString(o.value) ? toNumber(o.value) : o.value;
})
@IsNumber()
@IsOptional()
status: number;
}
因为status在数据库中存放的类型就是In,数字类型,1,2,3,三种状态。
由于Get请求地址栏只能输入字符串的原因,所以在stauts=有效的数字字符串(numberString)时才会去转换成数字类型。如果status=”,空字符,也进行转换的话,那么status===0,’0’才能转换成 数字零,”,空字符”就时查字符串,当参数没有带上status时,才会在查询数据库时,不带上status条件
IsOptional 与 Allow的区别?
装饰器执行顺序
@Type
=> @Transform
=> @ValidateIf
=> 其他
正文完