title: Type 'Observable<{}> is not assignable to type 'Observable'
body: <p>To preface: I know there are a ton of other questions with this exact same error, but I still can't seem to figure out my own. </p>
  
  <p>I have a simple service, and another simple component. I'm trying to follow the angular2 hero tutorial very closely, here is my code:</p>
  
  <p><em>location.ts</em></p>
  
  <hr>
  
  <pre><code>export class Location {
      name: string;
      type: string;
      c: string;
      zmw: string;
      tz: string;
      tzs: string;
      l: string;
      ll: string;
      lat: string;
      lon: string;
  }
  </code></pre>
  
  <p><em>location-search.service.ts</em></p>
  
  <hr>
  
  <pre><code>import { Injectable }       from '@angular/core';
  import { Http, Response }   from '@angular/http';
  import { Observable }       from 'rxjs';
  
  import { Location }         from './location';
  
  @Injectable()
  export class LocationSearchService {
      constructor(private http: Http) {}
  
      search(term: string): Observable&lt;Location[]&gt; {
          return this.http
              .get(`api_url_i've_removed`)
              .map((r: Response) =&gt; r.json().data as Location[]);
      }
  }
  </code></pre>
  
  <p><em>location-search.component.ts</em></p>
  
  <hr>
  
  <pre><code>import { Component, OnInit }    from '@angular/core';
  import { Router }               from '@angular/router';
  import { Observable }           from 'rxjs/Observable';
  import { Subject }              from 'rxjs/Subject';
  
  import { LocationSearchService }    from './location-search.service';
  import { Location }                 from './location';
  
  @Component({
      selector: 'location-search',
      templateUrl: 'location-search.component.html',
      styleUrls: ['assets/styles.css'],
      providers: [ LocationSearchService ]
  })
  
  export class LocationSearchComponent implements OnInit {
      locations: Observable&lt;Location[]&gt;;
      private searchTerms = new Subject&lt;string&gt;();
  
      constructor(
          private locationSearchService: LocationSearchService,
          private router: Router) {}
  
      search(term: string): void {
          this.searchTerms.next(term);
      }
  
      ngOnInit(): void {
          this.locations = this.searchTerms // &lt;- ERROR HERE
              .debounceTime(300)
              .distinctUntilChanged()
              .switchMap(term =&gt; term
                  ? this.locationSearchService.search(term)
                  : Observable.of&lt;Location[]&gt;([]))
              .catch(error =&gt; {
                  console.log(error);
                  return Observable.of&lt;Location[]&gt;([]);
              })
      }
  }
  </code></pre>
  
  <p>I keep getting the error: 
  <code>
  Type 'Observable&lt;{}&gt;' is not assignable to type 'Observable&lt;Location[]&gt;'.at line 29 col 9
  </code></p>
  
  <p>Am I doing something obviously wrong? Thank you for any help</p>