输入"Observable< {}>"不可分配给类型'Observable< boolean> |布尔'

问题描述:

我正在尝试遵循本教程 ,但出现错误.

Im trying to follow this tutorial, but I'm getting errors.

  1. pathMatch:已满".我尝试将" @ angular/router "更改为" 3.0.0-beta.2 ",仍然是相同的问题.
  1. pathMatch: 'full'. I tried changing "@angular/router" to "3.0.0-beta.2", still the same issue.

我的依赖项:

"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. 类型' Observable< {}>'不能分配给类型'Observable ',它指向行'return o'; >

  1. Type 'Observable<{}>' is not assignable to type 'Observable', where it points to the 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;
}

有人可以指导我解决这些错误吗?谢谢.

Can anyone guide me to fix these errors? thanks.

您可以尝试投射:

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;
}