我有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)?
答案 0 :(得分:1)
通过class-validator
,您可以选择Conditional Validation和Group Validation,也可以始终创建自定义管道并使用AJV。对于条件验证,您可以基于type
创建验证,然后让class-validator负责其余工作