我使用NestJs,在我的许多控制器中,我使用:
@Post(":id")
public create(
@Param('id', new ParseIntPipe()) id: number,
@Body(new ValidationPipe({transform: true})) myData: MyClass) {
// ...
}
我想通过创建一个自定义装饰器来清理我的代码,例如:
@Bind() => @Body(new ValidationPipe({transform: true}))
或
@Id() => @Param('id', new ParseIntPipe())
那么代码会比以前更简洁:
@Post(":id")
public create(@Id() id: number, @Bind() myData: MyClass) {
// ...
}
像这样继承那些装饰器的正确方法是什么?
谢谢
2条答案
按热度按时间wfveoks01#
由于装饰器只是普通的函数,你可以简单地创建一个返回被调用的装饰器的函数:
然后将它们用作装饰器:
n3ipq98p2#
请将此代码用于带有验证请求的自定义nestjs主体装饰器