Angular - "has no exported member 'Observable'" Angular - "没有导出成员'Observable'"
Angular - "has no exported member 'Observable'" Angular - "没有导出成员'Observable'"
Typescript code:
import { Injectable } from '@angular/core'; import { Observable } from 'rxjs/Observable'; import { of } from 'rxjs/observable/of'; import { Hero } from './hero'; import { HEROES } from './mock-heroes'; @Injectable({ providedIn: 'root' }) export class HeroService { constructor() { } getHeroes(): Observable{ return of(HEROES); } }
error info:
error TS2307: 无法找到模块 'rxjs-compat/Observable'。
node_modules/rxjs/observable/of.d.ts(1,15): error TS2307: 无法找到模块 'rxjs-compat/observable/of'。src/app/hero.service.ts(2,10):
error TS2305: 模块 '"F:/angular-tour-of-heroes/node_modules/rxjs/Observable"' 没有导出成员 'Observable'。src/app/hero.service.ts(15,12): error
TS2304: 无法找到名称 'of'。
package.json
文件中的 Angular 版本:
在Angular应用中,当出现错误信息"has no exported member 'Observable'"时,这通常是由于缺少对Observable的引用导致的。解决这个问题的方法是安装rxjs-compat库并引入Observable。
在Angular 6中,rxjs库已经进行了一些改动,其中Observable的导出方式发生了变化。因此,需要使用rxjs-compat库来支持旧版本的代码。
解决方法如下:
1. 打开终端或命令提示符,进入项目的根目录。
2. 运行以下命令来安装rxjs-compat库:
npm install rxjs-compat --save
3. 打开需要使用Observable的文件。
4. 在文件的顶部添加以下代码来引入Observable:
import { Observable } from 'rxjs';
5. 编译并运行应用,错误信息应该不再出现。
通过按照上述步骤安装rxjs-compat库并引入Observable,可以解决Angular应用中出现"has no exported member 'Observable'"的错误。这样做可以保证旧版本的代码能够正常运行,并与新版本的Angular兼容。