无法解析rxjs

Bha*_*vin 17 npm node-modules angular

编译失败.

./src/app/hero.service.ts找不到模块:错误:无法解析'C:\ Users\Admin\angular\myheroes\src\app'中的'rxjs/Observable/of'

@ ./src/app/hero.service.ts 13:11-40 
@ ./src/app/app.module.ts 
@ ./src/main.ts 
@ multi webpack-dev-server/client?http://0.0.0.0:0 ./src/main.ts
Run Code Online (Sandbox Code Playgroud)

我的代码为hero.service.ts

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { of } from 'rxjs/Observable/of';
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);
  }
}
Run Code Online (Sandbox Code Playgroud)

Ved*_*eri 42

我得到了这个错误,因为旧版本的rxjs和Angular 6需要最新版本的rxjs.

此命令将安装与Angular 6兼容的最新版本.

npm install --save rxjs-compat
Run Code Online (Sandbox Code Playgroud)

  • 请考虑添加解释为什么您认为这将解决OP问题. (3认同)
  • 我在寻找 rxjs 组件的依赖项方面遇到了问题,这个解决方案对我有用:) 非常感谢! (2认同)

Ada*_*Cox 19

正如Aravind在他的评论中指出的那样,案件在这里很重要.代替

import { of } from 'rxjs/Observable/of';
Run Code Online (Sandbox Code Playgroud)

尝试...

import { of } from 'rxjs/observable/of';  // note the lower-cased 'o' on 'observable'
Run Code Online (Sandbox Code Playgroud)


abe*_*els 10

对于那些在7月13日还活着的人来说,导入模块的正确方法如下:

import { Observable, of } from 'rxjs';
Run Code Online (Sandbox Code Playgroud)

我很确定,因为访问大写O和小写o文件夹的命名约定不正确,所以它们以更全面的方式包含它.

注意:这是出生的边缘.;)


Ste*_*e D 9

通常,您的项目中会有一个文件,rxjs-operators.ts其中包含导入rxjs您需要的部分的文件.您应该将此行添加到该文件:

import 'rxjs/add/observable/of';
Run Code Online (Sandbox Code Playgroud)

还拿出这一行:

import { of } from 'rxjs/observable/of';
Run Code Online (Sandbox Code Playgroud)

或者,直接将其导入您的模块,看看它是否有效.