Creating elegant reactive forms
So far, we have been using the FormGroup, FormControl, and FormArray classes to create our forms, as follows:
loginForm = new FormGroup({
  username: new FormControl('', Validators.required),
  password: new FormControl('', [
    Validators.required,
    Validators.minLength(6)
  ])
});
The previous way, however, constitutes a lot of noise, especially in forms that contain many controls. Alternatively, we can use an Angular service called FormBuilder to take away a lot of that noise. We can import FormBuilder from the @angular/forms npm package, inject it into the constructor of the component, and rewrite loginForm as follows:
constructor(private builder: FormBuilder) { }
private buildForm() {
  this.loginForm = this.builder.group({
    username: ['...