2016-07-11 13 views
5

Ich versuche zu folgen this tutorial, aber ich bekomme Fehler.Typ 'Observable <{}>' ist nicht dem Typ 'Observable <boolean> | zuweisbar boolean '

  1. pathMatch: 'voll'. Ich habe versucht, "@ angular/Router" zu "3.0.0-beta.2", immer noch das gleiche Problem.

Meine Abhängigkeiten:

"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. Typ 'beobachtbare < {}>' ist nicht übertragbar 'beobachtbar' zu geben, wo es auf die Punkte Linie 'Rückkehr 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; 
    } 
    

Kann mir jemand führen diese Fehler zu beheben? Vielen Dank.

Antwort

4

Sie könnten Casting versuchen:

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

Der Compiler beschwert, weil der Rückgabewert o vom Typ Observable<{}>. Dies liegt höchstwahrscheinlich daran, dass Sie einen Observable von p konstruieren, der zu type Promise<{}> aufgelöst wird. Überprüfen Sie dialogService.confirm() und stellen Sie sicher, dass der Rückgabewert vom Typ Promise<boolean> ist.

Wenn das nicht funktioniert, können Sie explizit versuchen, wie @rinukkusu schlägt.

+0

vielen dank! Weißt du, wie ich "pathMatch" Fehler beheben konnte, scheinen Vorschläge aus dem Internet nicht zu funktionieren. – kenkulan

+1

@kenkulan Was ist der genaue Fehler, den Sie erhalten, woher und unter welchen Umständen? – linguamachina

Verwandte Themen