在我的Angular 2应用中,我有以下代码:
import { Observable } from 'rxjs/Rx';
import { Subscription } from '@angular-cli/ast-tools/node_modules/rxjs/Rx';
...
private broadcastDataSubject: BehaviorSubject<Event>;
...
let sub: Subscription = this.broadcastDataSubject.asObservable().subject(event).subscribe(() => this.bla());
问题出在最后一行,代码因为以下原因而无法编译:
“类型'订阅'不能指定为”订阅“类型。存在两种具有此名称的不同类型,但它们不相关。”
我的第二个项目中有相同的代码,运行没有问题。
答案 0 :(得分:8)
问题是我有 2个相同的导入:
import { Subscription } from '@angular-cli/ast-tools/node_modules/rxjs/Rx';
组件中的一个 中的一个。
答案 1 :(得分:6)
在我看到我从以下地方导入我的Observable之前,我遇到了同样的问题:
import { Observable } from '@firebase/util';
我把它改为:
import { Observable } from 'rxjs/Observable';
它工作正常。
答案 2 :(得分:5)
当我拼错 Observable 时出现此错误。在导入中 我写道:
import { Observable } from 'rxjs/observable';
应该在哪里
import { Observable } from 'rxjs/Observable';
P.S。这是针对5.2.11版本的