Angular 5 Forms - Extending Form Control
Update the signature of the module to include your new properties.
This will let the compiler know about your new properties and will prevent it from throwing errors in the HTML template or in the component.ts file.
declare module '@angular/forms' {
  interface AbstractControl {
    focused: boolean;
  }
}

I added AbstractControl because that is the base class that FormControl is built on and derives its properties from.

Add your new properties by extending the class, passing through (...args) for both the constructor(...args) and super(...args) calls.
export class FormControlCustom extends FormControl {

  public focused: boolean = false;

  constructor(...args) {
    super(...args);
  }

}


Typecast your FormControl. Now all your FormControlCustom elements will have the new properties defined in the class which extends FormControl by default.
sampleForm = new FormGroup({
    property: new FormControlCustom('', Validators.required)
});



I tested this and it is working perfectly in Angular 9.