【发布时间】:2016-12-18 07:18:28
【问题描述】:
我正在构建一个 typescript angular 2 应用程序并使用 rxjs。我在这里遵循示例:
https://angular.io/docs/ts/latest/tutorial/toh-pt6.html#!#stq=formgroup&stp=1
尽管我试图用打字稿强烈键入我的返回签名。这可能是我的问题,因为您不应该这样做。但看起来你应该可以。
假设我有一个服务被键入以返回一个 Observable>。
public search(term: string) : Observable<Array<MyModel>> { // http call }
在我的组件中,我试图监听这个可观察的流并返回结果。
private search = new Subject<Search>();
results: Observable<Array<MyModel>>;
ngOnInit() {
this.results = this.search
.debounceTime(400)
.distinctUntilChanged()
.switchMap(search => {
return service.search(search.term); // returns Observable<Array<MyModel>>
});
}
这不会与消息 Cannot convert type Observable<Object> to type Observable<MyModel[]>> 一起编译
我不明白为什么 switchmap 返回 Observable 而不是我的类型。在将其提供给结果之前,我是否需要再次映射它?这是 switchmap 的返回签名的打字稿打字问题吗?
【问题讨论】:
-
我想你只需要一个演员表。
-
我曾尝试过,但无知地将 return 语句转换为转换所属的 switchmap 链的末尾。那是一件不容错过的蠢事。谢谢!
标签: angular typescript rxjs