如果应用
ParseIntPipe到
idPARAM,它只会改变
id,但没有财产
id的
params,在这里它会留一个
string。
相反,您可以使用
class-transformer将参数转换为
number:
import { Transform } from 'class-transformer';export class CreateDataParams { @Transform(id => parseInt(id), {toClassOnly: true}) id: number;}然后将
ValidationPipe搭配使用选项
transform: true:
@Post(':id')@UsePipes(new ValidationPipe({transform: true}))async create( @Param() params: CreateDataParams, @Body() createDto: CreateDto) { // params.id}不过请注意,这是不安全的,因为eg
parseInt('5abc010')是5。因此,您可能需要对转换功能进行其他检查。



