Fica aqui como dica uma forma mais enxuta de fazer a mesma verificação de idade sem precisar criar uma variável que soma 18 anos.
export class MaiorIdadeDirective implements Validator {
constructor() {}
validate(control: AbstractControl): ValidationErrors | null {
const dataNascimento = control.value;
const anoNascimento = new Date(dataNascimento).getFullYear();
const anoAtual = new Date().getFullYear();
return anoAtual - anoNascimento >= 18 ? null : { appMaiorIdade: true };
}
}
O restante do cógido é igual! ; )