title: angular2 Type 'Subject<{}>' is not assignable to type '() => Subject<number>'
body: <p>i use angular2 rxjs to test it's multicast func,here is my code:</p>
  
  <pre><code>var source = Observable.from([1, 2, 3]);
  var subject = new Subject();
  var multicasted = source.multicast(subject);
  
  // These are, under the hood, `subject.subscribe({...})`:
  multicasted.subscribe({
      next: (v) =&gt; console.log('observerA: ' + v)
  });
  multicasted.subscribe({
      next: (v) =&gt; console.log('observerB: ' + v)
  });
  
  // This is, under the hood, `source.subscribe(subject)`:
  multicasted.connect();
  </code></pre>
  
  <p>i got the error info :</p>
  
  <p>Argument of type 'Subject&lt;{}>' is not assignable to parameter of type </p>
  
  <pre><code>'Subject&lt;number&gt; | (() =&gt; Subject&lt;number&gt;)'.
          Type 'Subject&lt;{}&gt;' is not assignable to type '() =&gt; Subject&lt;number&gt;'.
          Type 'Subject&lt;{}&gt;' provides no match for the signature '(): Subject&lt;number&gt;'
  </code></pre>