我正在尝试实现ngbTypeAhead,但是使用5.5.5版本时RxJS出现了问题。我已经从rxjs 6版本中获取了这个示例。
"rxjs": "^5.5.2" and
angular "^5.0.1",
"typescript": "~2.6.1",
当我尝试在焦点上提前输入时,出现类似的错误,
*[ts] Property 'pipe' does not exist on type 'UnaryFunction<Observable<{}>, Observable<string | {}>>'.
any*
search2 = (text$: Observable<string>) => {
const debouncedText$ = text$.pipe(debounceTime(200), distinctUntilChanged());
const clicksWithClosedPopup$ = this.click$.pipe(filter(() => !this.instance.isPopupOpen()));
const inputFocus$ = this.focus$;
let mer = merge(debouncedText$, inputFocus$, clicksWithClosedPopup$);
debugger;
return mer.pipe(
map(term => (term === '' ? this.roadList
: this.roadList.filter(v => v.toLowerCase().indexOf(term.toString().toLowerCase()) > -1)).slice(0, 10))
);
}
有人可以帮我解决一下如何重写上述search2方法的问题吗?
答案 0 :(得分:2)
您很可能在希望merge
导入merge
作为操作符的情况下,将其称为“可观察的创建方法” ,并直接来自'rxjs'
因此,请检查您是否真的在RxJS 6中使用此导入:
import { merge } from 'rxjs';
...代替您不希望导入的merge
运算符的导入:
import { merge } from 'rxjs/operators'; // This imports just the operator
对于RxJS 5,请使用以下代码:
import { merge } from 'rxjs/observable/merge';