I'm defining an email form field:
this.form.addControl('email', new FormControl('', [
Validators.required, CustomFormValidators.isValidEmail
]));
And using a CustomFormValidators class with a isValidEmail method
static isValidEmail(control: AbstractControl): ValidationErrors | null {
if (!control) return; // <- ERROR HERE
const regex = new RegExp(..email regex..);
if (regex.test(control.value)) return null;
return { isValidEmail: true };
}
And, with Angular new strict mode rules I'm getting this error:
Type 'undefined' is not assignable to type 'ValidationErrors | null'.
I could not figure it out how to solve this error.
CodePudding user response:
Like the signature indicates, the return value has to be ValidationErrors
or null
.
The return
instruction implicitly returns undefined
instead of null
which explains the error you observe.
Write this instead:
if (!control) return null;
Or just remove this line as the condition may never evaluate to true
(a control instance is always being passed as a parameter of a validator)