2016-07-11 31 views
5

Tôi đang cố gắng theo dõi this tutorial, nhưng tôi gặp lỗi.Loại 'Có thể quan sát <{}>' không thể gán để nhập 'Quan sát <boolean> | boolean '

  1. đường dẫnMatch: 'full'. Tôi đã thử thay đổi "@ góc/bộ định tuyến" thành "3.0.0-beta.2", vẫn là vấn đề tương tự.

phụ thuộc của tôi:

"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. Loại 'Quan sát < {}>' là không thể chuyển nhượng để gõ 'Quan sát', nơi mà nó trỏ tới dòng '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; 
    } 
    

bất cứ ai có thể hướng dẫn cho tôi để sửa chữa các lỗi này? cảm ơn.

Trả lời

4

Bạn có thể thử đúc:

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

Trình biên dịch được phàn nàn vì giá trị trả về o là loại Observable<{}>. Điều này rất có thể là do bạn đang xây dựng một số Observable từ p, quyết định loại Promise<{}>. Kiểm tra kỹ số dialogService.confirm() và đảm bảo giá trị trả về của nó là loại Promise<boolean>.

Nếu điều đó không hiệu quả, bạn có thể thử truyền một cách rõ ràng như @rinukkusu đề xuất.

+0

cảm ơn bạn rất nhiều! Bạn có biết làm thế nào tôi có thể khắc phục lỗi "pathMatch", các đề xuất từ ​​internet dường như không hoạt động. – kenkulan

+1

@kenkulan Lỗi chính xác bạn nhận được là gì, từ đâu và trong hoàn cảnh nào? – linguamachina

Các vấn đề liên quan