title: Get unhandled promise error but when I add catch I get type boolean is not assignable
body: <p><strong>Update</strong> If I amend my api to retunr res.status(200) instead of res.status(401) then I get my code to work.
  Im guessing the unhandled error is because I return a 401, but how can I catch and use the 401 if I get boolean error adding .catch to my .map?</p>
  
  <p>Im trying to make a auth guard. My method is to request an api that does some work on the server side and returns a json body with some user information and status true, or a status of false if the webtoken cannot be verified</p>
  
  <p>In my angular code I have</p>
  
  <pre><code>canActivate() {
  return this.http.get(`http://localhost:3000/api/user/status`, options)
    // return this.http.get(`/api/user/status`, options)
    .map(res =&gt; {
      if(!res){
        this.router.navigate(['/login']);
        return false;
      }
      let user: any = res.json();
      return true;
    })
  }
  </code></pre>
  
  <p>If I run my code with a correct token I get the page authenticating. If I amend the token my POSTMAN test return a <code>status: false</code> but when I use my website I get errors saying that I have unhandled errors.</p>
  
  <p>So I try to add a catch</p>
  
  <pre><code>.catch(e =&gt; {
      this.router.navigate(['/login']);
        return false;
    })
  </code></pre>
  
  <p>but I get compile errors saying " Argument of type '(e: any) => boolean' is not assignable to parameter of type '(err: any, caught: Observable) => ObservableInput'. Type 'boolean' is not assignable to type 'ObservableInput'.)"</p>
  
  <p>Any advice?</p>