title: at least one field is required in angular 4 forms
body: <p>I'm using angular 4 forms and I have some fields. and first_name, last_name and company are really important for me. I want to force the user to fill one of these 3 fields. how can I do it? </p>
  
  <p>here are .ts codes:</p>
  
  <pre><code>this.contactForm = this.fb.group({
          first_name: [null, Validators.compose([Validators.required])],
          last_name: [null, Validators.compose([Validators.required])],
          email: [null, Validators.compose([this.validateEmail])],
          company: [null],
          position: [null],
        });
  </code></pre>
  
  <p>an html:</p>
  
  <pre><code> &lt;form [formGroup]="contactForm" fxLayout="column"&gt;
              &lt;md-input-container class="data_light"&gt;
                &lt;input class="data_font capital" mdInput placeholder="{{'Contacts.FirstName' | translate}}" [formControl]="contactForm.controls['first_name']"&gt;
              &lt;/md-input-container&gt;
              &lt;small *ngIf="contactForm.controls['first_name'].hasError('required') &amp;&amp; contactForm.controls['first_name'].touched" class="mat-text-warn data_light"&gt;{{'Contacts.firstNameReq' | translate}}
              &lt;/small&gt;
              &lt;md-input-container class="data_light"&gt;
                &lt;input class="data_font capital" mdInput placeholder="{{'Contacts.lastName' | translate}}" [formControl]="contactForm.controls['last_name']"&gt;
              &lt;/md-input-container&gt;
              &lt;small *ngIf="contactForm.controls['last_name'].hasError('required') &amp;&amp; contactForm.controls['last_name'].touched" class="mat-text-warn data_light"&gt;{{'Contacts.lastNameReq' | translate}}
              &lt;/small&gt;
              &lt;md-input-container class="data_light"&gt;
                &lt;input class="data_font" mdInput placeholder="{{'Contacts.email' | translate}}" [formControl]="contactForm.controls['email']"
                  (blur)="checkContactEmail()"&gt;
              &lt;/md-input-container&gt;
              &lt;small *ngIf="contactForm.controls['email'].hasError('validateEmail') &amp;&amp; contactForm.controls['email'].dirty" class="mat-text-warn data_light"&gt;{{'Contacts.emailValid' | translate}}
              &lt;/small&gt;
              &lt;small *ngIf="!emailValid" class="mat-text-warn data_light"&gt;{{emailMessage}}
              &lt;/small&gt;
              &lt;md-input-container class="data_light"&gt;
                &lt;input class="data_font capital" mdInput placeholder="{{'Contacts.Company' | translate}}" [formControl]="contactForm.controls['company']"&gt;
              &lt;/md-input-container&gt;
              &lt;md-input-container class="data_light"&gt;
                &lt;input class="data_font capital" mdInput placeholder="{{'Contacts.Position' | translate}}" [formControl]="contactForm.controls['position']"&gt;
              &lt;/md-input-container&gt;
            &lt;/form&gt;
  </code></pre>