Angular项目编译失败:无法解析rxjs/Observable/of路径求助
解决rxjs模块未找到错误:无法解析'rxjs/Observable/of'
这个问题根源是rxjs版本和导入语法不匹配。在rxjs 6及以上的版本中,所有操作符(包括of)的导入路径已经统一调整,不再需要从rxjs/Observable/xxx这类子路径导入。
你只需要修改一行导入代码就能解决问题:
- 将
import { of } from 'rxjs/Observable/of';替换为import { of } from 'rxjs';
修改后的完整hero.service.ts代码如下:
import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; // 这里是修改的地方:直接从rxjs导入of import { of } from 'rxjs'; import { Hero } from './hero'; import { HEROES } from './mock-heroes'; import { MessageService } from './message.service'; @Injectable() export class HeroService { constructor(private messageService: MessageService) { } getHeroes(): Observable<Hero[]> { // todo: send the message _after_fetching the heroes this.messageService.add('HeroService: fetched heroes'); return of(HEROES); } }
如果你的项目是比较老的Angular版本(比如Angular 5及以下,对应rxjs 5.x),那你可能需要确认rxjs-compat包是否已安装,但更推荐升级到rxjs 6+的版本,这样能使用更简洁的导入语法和更多新特性。
内容的提问来源于stack exchange,提问作者Bhavin
相关产品推荐
相关产品推荐

