2016-07-11 7 views
5

私はthis tutorialをフォローしようとしていますが、エラーが発生しています。タイプ 'Observable <{}>'はタイプ 'Observableに割り当てられません<boolean> |ブール値 '

  1. pathMatch: 'full'私は "@ angular/router"を "3.0.0-beta2"に変更しようとしましたが、それでも同じ問題です。

マイ依存性:

"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" 
}, 
  • タイプ '観測< {}>' は、それが指す場合 '観測' を入力に割り当てませんライン'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

    あなたはキャストを試みることができる:戻り値oがタイプObservable<{}>であるため

    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

    コンパイラが文句を言っています。これは、をpから構成しているため、Promise<{}>に解決される可能性があります。 dialogService.confirm()をダブルチェックし、戻り値のタイプがPromise<boolean>であることを確認してください。

    これが機能しない場合は、@ rinukkusu示唆のように明示的にキャストすることができます。

    +0

    ありがとうございます!私は "pathMatch"エラーを修正する方法を知っていますか?インターネットからの提案はうまくいかないようです。 – kenkulan

    +1

    @kenkulan受信した正確なエラーはどこから、どのような状況で発生していますか? – linguamachina

    関連する問題