Implementando o código da Diretiva de DisableControlDirective
, ao iniciar a implementação do método ngOnchanges
, há uma linha que no exemplo da aula não apresenta nenhum erro, mas no meu VSCode exibe a mensagem de erro na linha this.ngControl.control[action]();
Type Boolean has no call signatures
Segue o código completo da Diretiva
import { Directive, Input, OnChanges, SimpleChanges } from '@angular/core';
import { NgControl } from '@angular/forms';
@Directive({
selector: '[appDisableControl]',
})
export class DisableControlDirective implements OnChanges {
@Input()
appDisableControl = false;
constructor(
private ngControl: NgControl
) {}
public ngOnChanges(pChanges: SimpleChanges): void {
if ( pChanges.appDisableControl ) {
const action = this.appDisableControl ? 'disabled' : 'enabled';
this.ngControl.control[action]();
}
}
}
Ao remover os Parênteses, deixando assim this.ngControl.control[action]
o erro de compilação não é mais exibido.
Onde posso estar errando?