我有一个REST调用,可能会接收到classA或classB类型的请求体。我需要将其保留为2个不同的类。
例如 -
// classes -
class ClassA {
@IsString()
@Length(1, 128)
public readonly name: string;
@IsString()
@Length(1, 128)
public readonly address: string;
}
class ClassB {
@IsString()
@Length(1, 10)
public readonly id: string;
}
// my request controller -
@Post('/somecall')
public async doSomething(
@Body(new ValidationPipe({transform: true})) bodyDto: (ClassA | ClassB) // < not validating any of them..
): Promise<any> {
// do something
}
问题在于,当有多个类时,无法验证body。
我如何使用2个或更多的类并使用class-validator进行验证? 我不想使用相同的类..
谢谢大家 :)
bodyDto: (ClassA | ClassB)
不是有效的,这是 TypeScript 的类型声明。 - Wang Liang