升级Angular5至6后遇报错:Property 'from'不存在于typeof Observable
解决Angular 6升级后Observable.from报错的问题
这个问题根源在于Angular 6默认搭配的RxJS 6做了重大API调整——原本挂载在Observable类上的静态操作符(比如from)被抽离成了独立函数,同时导入规则也完全变了。
你可以按以下步骤快速修复:
修正导入语句
确保从rxjs直接导入独立的from函数:import { Observable, from } from 'rxjs';调整调用方式
把原来的Observable.from(this.users)改成直接调用from函数:// 替换旧写法 Observable.from(this.users) from(this.users);
额外提示
如果你的代码里还有其他RxJS操作符(比如map、filter),也要注意:实例操作符现在需要从rxjs/operators导入,并且通过pipe方法链式调用,举个例子:
import { map } from 'rxjs/operators'; from(this.users).pipe( map(user => user.displayName) );
要是你实在想保留Observable.from这类旧写法(不推荐,不符合新版本规范),也可以手动把from挂载回Observable:
import { Observable, from } from 'rxjs'; Observable.from = from;
但更建议遵循RxJS 6的新规范,这样后续代码维护、版本迁移都会更顺畅。
内容的提问来源于stack exchange,提问作者Mohammad Dayyan
相关产品推荐
相关产品推荐

