Я хочу применить проверку полезной нагрузки запроса, например, есть имя поля со строковым типом. Но имя не является обязательным полем, но если оно существует, оно должно быть выполнено @IsNotEmpty()
Я пробовал что-то вроде этого
@IsNotEmpty() name?: string
// не учитывает ?
необязательное ограничение
Вы можете использовать валидатор @IsOptional()
:
Checks if given value is empty (
=== null
,=== undefined
) and if so, ignores all the validators on the property.
Ответ Ким отличный. Если вы хотите применить это поведение ко всем вашим необязательным полям, вы также можете использовать skipMissingProperties: true
с вашими каналами проверки.
класс-валидатор имеет валидатор @IsOptional()
, который вы можете добавить вместе с любыми другими валидаторами, которые вы определили следующим образом:
@IsOptional() @IsNotEmpty() name: string;
Декораторы коммутативны, поэтому проверка не зависит от порядка валидаторов. Если необходимость проверки зависит от чего-то другого, кроме присутствия, вы можете использовать @ValidateIf()
, который принимает аргумент функции.
Не могли бы вы привести пример того, где разместить это свойство в каналах? Спасибо