javascript - Klassvalidatorer fungerar inte när typen är en Record <k,v> - NestJS
Vi har en DTO-egenskap där dess typ är Record<string, Animal> och Animal är en annan DTO med klassvaliderare som @IsDefined(), @IsNotEmpty(). Dessa valideringar fungerar dock inte som förväntat och det beror förmodligen på att den har Record-typen.
Jag har redan försökt lägga till @ValidatedNested({ each: true }) men det fungerade fortfarande inte. Hur skulle vi kunna få valideringen att fungera för Animal dto i Record<string, Animal>?
Svar #1
Du behöver skapa en anpassad validator för detta.
Vänligen, kontrollera detta inlägg: Validera varje Map
Svar #2
Hej Du kan försöka bygga en partial class validator, https://trilon.io/blog/introducing-mapped-types-for-nestjs här är lite dokumentation. till exempel:
export class Record extends PartialType(
OmitType(Animal , ['legs'] as const),
) {}