gpt4 book ai didi

typescript - 类验证器的高级条件(可能)?

转载 作者:行者123 更新时间:2023-12-04 17:30:30 27 4
gpt4 key购买 nike

我有 TypeScript NestJS 项目。

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

  • 房屋:楼层包括房间
  • 单位:客房
  • 花园:无(是一个“房间”)

  • 房屋类型示例:
    {
    type: HOUSE,
    floors: [
    {
    name: "1st floor",
    rooms: [
    {
    name: "bedroom"
    }
    ]
    }
    ]
    }

    扁平型示例:
    {
    type: FLAT,
    rooms: [
    {
    name: "bedroom"
    }
    ]
    }

    我过去曾在 AJV 的帮助下完成此操作,但是现在当我们迁移到 NestJS 时,我们开始使用 class-validator .

    我的问题是,如果我可以在 class-validator 中创建那些高级条件(例如,当类型为 FLAT 时,则只期望 ROOMS,而不是 FLOORS)。 ?

    最佳答案

    class-validator您可以选择 Conditional ValidationGroup Validation ,或者您始终可以创建自定义管道并像以往一样使用 AJV。对于条件验证,您可以基于 type 创建验证然后让类验证器处理其余的

    关于typescript - 类验证器的高级条件(可能)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60224084/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com