2016-07-11 11 views
5

Próbuję podążać za this tutorial, ale dostaję błędy.Typ "Observable <{}>" nie można przypisać "Observable <boolean> | boolean '

  1. pathMatch: "pełna". Próbowałem zmienić "@ kątowy/router" na "3.0.0-beta.2", nadal ten sam problem.

Moi zależności:

"dependencies": { 
    "@angular/common": "2.0.0-rc.3", 
    "@angular/compiler": "2.0.0-rc.3", 
    "@angular/core": "2.0.0-rc.3", 
    "@angular/http": "2.0.0-rc.3", 
    "@angular/platform-browser": "2.0.0-rc.3", 
    "@angular/platform-browser-dynamic": "2.0.0-rc.3", 
    "@angular/platform-server": "2.0.0-rc.3", 
    "@angular/router": "3.0.0-beta.2", 
    "@angular/router-deprecated": "2.0.0-rc.2", 
    "nativescript-angular": "0.2.0", 
    "tns-core-modules": "^2.1.0" 
}, 
  1. Type 'Obserwowalne < {}>' nie jest przypisane do typu 'Obserwowalne', w którym zwraca uwagę na linia 'return o';

    canDeactivate(): Observable<boolean> | boolean { 
    
    if (!this.crisis || this.crisis.name === this.editName) { 
    
    return true; 
    } 
    let p = this.dialogService.confirm('Discard changes?'); 
    let o = Observable.fromPromise(p); 
    return o; 
    } 
    

Czy ktoś mnie prowadził, aby naprawić te błędy? dzięki.

Odpowiedz

4

Można spróbować rzucania:

canDeactivate(): Observable<boolean> | boolean { 

    if (!this.crisis || this.crisis.name === this.editName) { 

     return true; 
    } 
    let p = this.dialogService.confirm('Discard changes?'); 
    let o = <Observable<boolean>>Observable.fromPromise(p); 
    return o; 
} 
3

Kompilator narzeka ponieważ wartość zwracana o jest typu Observable<{}>. Jest to najprawdopodobniej spowodowane tym, że tworzysz Observable z p, który rozwiązuje się, aby wpisać Promise<{}>. Sprawdź dwukrotnie: dialogService.confirm() i upewnij się, że zwracana jest wartość typu Promise<boolean>.

Jeśli to nie zadziała, możesz spróbować rzucić tak, jak sugeruje @rinukkusu.

+0

dziękuję bardzo! Czy wiesz, jak mogę naprawić błąd "pathMatch", sugestie z Internetu nie działają. – kenkulan

+1

@kenkulan Jaki jest dokładny błąd, który otrzymujesz, skąd iw jakich okolicznościach? – linguamachina

Powiązane problemy