Nestjs-是否可能获得正确实例化的正文负载?

Nestjs-是否可能获得正确实例化的正文负载?,nestjs,dto,Nestjs,Dto,Nestjs文档建议对DTO使用类而不是接口,因为它们在编译的JavaScript中被保留为真实实体,但实际上负载类没有正确实例化(使用new()),它们是与类具有相同形状的对象。 下面的示例不起作用。 在本例中,是否有方法获得正确实例化的运行时CatDto类 class CatsDto { constructor(private name: string) {} public greet() { return `${this.name} say miaouw`; } }

Nestjs文档建议对DTO使用类而不是接口,因为
它们在编译的JavaScript中被保留为真实实体
,但实际上负载类没有正确实例化(使用new()),它们是与类具有相同形状的对象。 下面的示例不起作用。 在本例中,是否有方法获得正确实例化的运行时
CatDto

class CatsDto {
  constructor(private name: string) {}
  public greet() {
    return `${this.name} say miaouw`;
  }
}

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  @Post()
  getGreeting(@Body() cat: CatsDto): string {
    return cat.greet();
  }
}

您需要使用ClassTransformer管道来转换作为控制器操作参数传递的对象:

安装在您的
包中。json
?cat.greet()的结果是什么?