Typescript 类验证程序的高级条件(可能)?

Typescript 类验证程序的高级条件(可能)?,typescript,nestjs,ajv,class-validator,Typescript,Nestjs,Ajv,Class Validator,我有一个TypeScript NestJS项目 我需要验证传入的DTO到我的API。可以将其描述为“创建项目”,其中我们有建筑类型(房屋、公寓、花园),根据该类型,我们需要定义: 房屋:包括房间在内的楼层 单位:客房 花园:没有(这是一个“房间”) 房屋类型示例: { type: HOUSE, floors: [ { name: "1st floor", rooms: [ { name: "bedroom"

我有一个TypeScript NestJS项目

我需要验证传入的DTO到我的API。可以将其描述为“创建项目”,其中我们有建筑类型(房屋、公寓、花园),根据该类型,我们需要定义:

  • 房屋:包括房间在内的楼层
  • 单位:客房
  • 花园:没有(这是一个“房间”)
房屋类型示例:

{
  type: HOUSE,
  floors: [
    {
      name: "1st floor",
      rooms: [
        {
          name: "bedroom"
        }
      ]
    }
  ]
}
平面类型的示例:

{
  type: FLAT,
  rooms: [
    {
      name: "bedroom"
    }
  ]
}
我以前在
AJV
的帮助下做过这件事,但现在当我们迁移到NestJS时,我们开始使用
class validator


我的问题是,如果我可以在
类验证器

中使用
类验证器
生成这些高级条件(例如,当类型为平面时,则只需要房间,而不需要楼层),您可以选择和,或者您可以始终创建自定义管道,并按照习惯使用AJV。对于条件验证,您可以基于
类型创建验证,然后让类验证器处理其余的部分

“您可以基于类型创建验证”,您可以举个例子吗?@coler-j如果我能理解我的意思,那么绝对可以。我很确定我在某处看到过一些例子,但我现在记不起在哪里了