首页 > 解决方案 > 是否可以从现有类派生一个新类,并将装饰器应用于类中的每个字段?

问题描述

这是我正在验证的类的示例,我想创建一个新类,并将@IsOptiona()装饰器应用于每个字段。

export class CreateCompanyDto {
    @Length(2, 150)
    name: string;

    @IsOptional()
    @IsUrl()
    logoImageUrl: string;

    @IsUrl()
    websiteUrl: string;
}

目前只能手写,但是类比较大,全部写出来比较麻烦。

export class UpdateCompanyDto {
    @IsOptional()
    @Length(2, 150)
    name: string;

    @IsOptional()
    @IsUrl()
    logoImageUrl: string;

    @IsOptional()
    @IsUrl()
    websiteUrl: string;
}

有没有一种方法可以衍生但适用于每个领域UpdateCompanyDtoCreateCompanyDto@IsOptional()

标签: javascripttypescriptnestjsclass-validator

解决方案


几天前我遇到了类似的问题,我设法解决了。

基本上你需要让一个类扩展另一个类;使用@ValidateIf符号并有一个变量来决定是否要验证必填字段。

在这里,我解释了我是如何做到的。


推荐阅读