title: FormControl / FormGroup / FormArray value type
body: <p>I want my <code>FormControl</code> (<code>FormGroup</code> / <code>FormArray</code>) be strongly typed so when I have e.g.</p>
  
  <pre><code>interface SomeSource {
    id: string;
    name: string;
  }
  </code></pre>
  
  <p>and I transformed it to e.g.</p>
  
  <pre><code>let form = new FormGroup&lt;SomeSource&gt;({
    id: new FormControl('test id'),
    name1: new FormControl('test name')
  });
  </code></pre>
  
  <p>TypeScript had thrown an error: the <code>name</code> is not found on <code>FormGroup</code>.</p>
  
  <p>Also in the ideal world the <code>form.value</code> should be of <code>SomeSource</code> type (and not <code>any</code>).</p>
  
  <p>Problem is that there is no way to specify this generic type for any <code>AbstractFormControl</code> child.</p>
  
  <p>I think this is fairly easy to override <code>FormGroup</code> with an own interface. However, is there a way to achieve this just using Angular? If no, are there third party solutions?</p>
  
  <p>Motivation: I want to easily refactor my <code>SomeSource</code>. Currently when I refactor <code>SomeSource</code> interface, the form is not adapted and no error is thrown => there is a room for some bugs.</p>