2016-07-11 76 views
5

我試圖按照this tutorial,但我得到錯誤。類型'Observable <{}>'不可分配爲類型'Observable <boolean> |布爾'

  1. pathMatch:'full'。我嘗試將「@ angular/router」更改爲「3.0.0-beta.2」,仍然是同樣的問題。

我的依賴關係:

"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" 
}, 
  • 類型 '可觀察< {}>' 不可分配,其中它指向爲類型 '可觀察', line '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; 
    } 
    
  • 任何人都可以引導我解決這些錯誤?謝謝。

    回答

    4

    您可以嘗試鑄造:

    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

    編譯器是抱怨,因爲返回值oObservable<{}>類型。這很可能是因爲您正在構建p中的Observable,此解析爲Promise<{}>。請仔細檢查dialogService.confirm()並確保其返回值爲Promise<boolean>

    如果這不起作用,你可以嘗試像@rinukkusu建議的那樣明確地轉換。

    +0

    非常感謝你!你知道我怎麼能修復「pathMatch」錯誤,來自互聯網的建議似乎沒有工作。 – kenkulan

    +1

    @kenkulan接收的確切錯誤是什麼,從哪裏以及在什麼情況下? – linguamachina

    相關問題