No username-password.validator.ts deu um erro quando eu chamava o formGroup: FormGroup, fiz umas pesquisas e encontrei uma solução para o meu caso. Substituir o FormGroup por AbstractControl e tipar para ValidationErrors | null.
username-password.validator.ts
import { ValidatorFn, AbstractControl, ValidationErrors } from '@angular/forms';
export const userNamePassword: ValidatorFn = (
formGroup: AbstractControl
): ValidationErrors | null => {
const userName = formGroup.get('userName')?.value;
const password = formGroup.get('password')?.value;
if (userName.trim() + password.trim()) {
return userName != password ? null : { userNamePassword: true };
} else {
return null;
}
};
E no signup.component.html utilizar [''] após o erros?.
<app-vmessage
*ngIf="signupForm.errors?.['userNamePassword']"
text="Username and passowrd must be different"
></app-vmessage>
Espero ter ajudado!