Angular项目中node_modules内Auth.d.ts文件出现rxjs Observable导出错误
解决RxJS "没有导出成员'Observable'"的TypeScript错误
这个问题十有八九是因为你项目里的RxJS版本升级到了6.x及以上,而Auth.d.ts里还在用旧版本的导入写法导致的。RxJS 6+对模块结构做了大幅调整,旧的导入路径已经不再生效了。
给你几个具体的解决步骤:
- 首先确认RxJS版本:打开项目根目录的
package.json,找到rxjs依赖项,看看版本号是不是6.x或者更高。如果是,就按下面的方法改。 - 修改Observable的导入语句:把
Auth.d.ts里的
改成import { Observable } from 'rxjs/Observable';
因为RxJS 6+里,Observable是直接从import { Observable } from 'rxjs';rxjs根模块导出的,不再放在rxjs/Observable子路径下了。 - 处理兼容性(可选):如果你的项目里还有其他依赖(比如旧版本的AngularFire)还没适配RxJS 6+,可以临时安装
rxjs-compat包来做过渡兼容:
不过要注意,npm install rxjs-compat --saverxjs-compat已经被官方弃用了,只是作为临时过渡方案,长远来看还是建议把依赖升级到支持RxJS 6+的版本。 - 额外提醒:如果你的代码里还有RxJS操作符(比如
map、filter)的旧写法,也要一起调整。比如原来的import 'rxjs/add/operator/map';要改成import { map } from 'rxjs/operators';,然后在pipe()方法里使用这些操作符。
内容的提问来源于stack exchange,提问作者sundeep
相关产品推荐
相关产品推荐

