Angular - "has no exported member 'Observable'" Angular - "没有导出成员'Observable'"

25 浏览
0 Comments

Angular - "has no exported member 'Observable'" Angular - "没有导出成员'Observable'"

code

error info

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 版本:

version

0
0 Comments

问题出现的原因:

在使用Angular时,当引入Observable时出现了错误提示"has no exported member 'Observable'"

解决方法:

只需简单地引入Observable即可解决该问题,代码如下:

import { Observable} from 'rxjs';

注意要使用'rxjs'而不是'rxjs/Observable'

是否支持Tree Shaking:

这种解决方法肯定有效,但不确定它是否支持Tree Shaking。

0
0 Comments

在更新到Angular 6.0.0后,出现了"has no exported member 'Observable'"的错误。这个错误的原因是缺少了rxjs-compat库。解决方法是运行npm install rxjs-compat --save进行安装。这样就可以解决这个问题。

有人提出了一个问题,如果不想使用向后兼容的包rxjs-compat怎么办?另外,如果我们不想使用rxjs-compat又该怎么办呢?这应该是正确的答案。在前进的过程中,这可能不是正确的答案,但至少是"现在"的答案。

0
0 Comments

在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兼容。

0