title: Type 'void' is not assignable to type 'ObservableInput<{}>'
body: <p>This error started to pop up after I migrated to TS 2.2.2, so I'm assuming that's the problem... The code did not stop working, but now I receive that error and I tried a few things like returning an empty observable, catching the re-thrown exception and returning an object, nothing seemed to work. Why is this happening now? Shouldn't it understand I'm re-throwing the exception and not expect a return? Am I misreading the error?</p>
  
  <p>This is the complete error description:</p>
  
  <p><a href="https://i.stack.imgur.com/ePmFC.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/ePmFC.jpg" alt="enter image description here"></a></p>
  
  <p>Here's the complete code:</p>
  
  <pre><code>return request
      .map((res: Response) =&gt; res.json())
      .catch((error: any) =&gt; {
          // todo: log?
  
          if (error.status == 500) {
              this.alertService.showError(error.statusText);
          } else if (error.status == 588) {
              this.alertService.showAlert(error.statusText);
          }
  
          Observable.throw(error.statusText);
      });
  </code></pre>
  
  <p>I tried returning the Observable, but my wrapper method expects a return of type <code>T</code>, which is the return of my deserialized request (<code>map(...)</code>). If I do return the <code>throw</code> this is the error I get:</p>
  
  <blockquote>
    <p>[ts] Type 'Observable' is not assignable to type 'T'</p>
  </blockquote>
  
  <p>I'm using:</p>
  
  <blockquote>
    <ul>
    <li>Angular4</li>
    <li>Typescript 2.2.2</li>
    </ul>
  </blockquote>