typescript - Hur validerar man en array av URL:er med Class-Validator?


Jag använder Class-Validator för att validera egenskaper hos DTO:er för en Nest.js-applikation. Där har jag en egenskap "images", som är en array av strängar och dessa strängar är URL:er. Så jag vill validera varje URL i den arrayen.

class SomeDto {
// ...
       
// Array of Urls
@IsArray()
@IsUrl({each:true})
images: string[];

// ...
}

Men detta verkar inte fungera. Vet någon hur man validerar denna Array av Urls.

Svar #1

Typen på den första parametern för IsUrl är inte den vanliga ValidationOptions.

Du kan kontrollera dess signatur:

export declare function IsUrl(options?: ValidatorJS.IsURLOptions, validationOptions?: ValidationOptions): PropertyDecorator;

Så, försök att skicka { each: true } på andra plats och det kommer att fungera.

class SomeDto {
// ...
       
// Array of Urls
@IsArray()
@IsUrl({}, { each: true })
images: string[];

// ...
}

Relaterade artiklar