import { FormGroup } from '@angular/forms'; export abstract class FormReactive { abstract form: FormGroup; abstract formErrors: Object; abstract validationMessages: Object; abstract buildForm(): void; protected onValueChanged(data?: any) { for (const field in this.formErrors) { // clear previous error message (if any) this.formErrors[field] = ''; const control = this.form.get(field); if (control && control.dirty && !control.valid) { const messages = this.validationMessages[field]; for (const key in control.errors) { this.formErrors[field] += messages[key] + ' '; } } } } }