Angular 7 - 出现错误:'rxjs 没有导出成员'Observable'

Mir*_*had 3 rxjs typescript angular rxjs6 angular7

这是我的package.json文件:

"dependencies": {
    "@angular/animations": "~7.1.0",
    "@angular/common": "~7.1.0",
    "@angular/compiler": "~7.1.0",
    "@angular/core": "~7.1.0",
    "@angular/forms": "~7.1.0",
    "@angular/material": "^7.1.1",
    "@angular/platform-browser": "~7.1.0",
    "@angular/platform-browser-dynamic": "~7.1.0",
    "@angular/router": "~7.1.0",
    "core-js": "^2.5.4",
    "ng2-opd-popup": "^1.1.21",
    "rxjs": "~6.3.3",
    "tslib": "^1.9.0",
    "zone.js": "~0.8.26"
Run Code Online (Sandbox Code Playgroud)

service.ts文件代码如下:

import { Injectable } from '@angular/core';
import { Http, Headers} from '@angular/http';
import 'rxjs/add/operator/map';
//import { Observable } from 'rxjs/Observable';
//import   'rxjs/add/observable';
import { Observable} from 'rxjs';
@Injectable({
  providedIn: 'root'
})
export class EmpService {
  employees=[];
  constructor(private _http: Http) { }
  addEmployee(info){
    return this._http.post("http://localhost/data/insert.php",info)
      .map(()=>"");
  }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

rxjs 没有导出成员“Observable”

版本中是否存在任何问题?

veb*_*ben 5

为了兼容 rxjs6 和 Angular 7,您必须替换:

import { Http, Headers } from '@angular/http';
import 'rxjs/add/operator/map';
Run Code Online (Sandbox Code Playgroud)

经过:

import { map } from 'rxjs/operators';
import { HttpClient, HttpHeaders } from '@angular/common/http';
Run Code Online (Sandbox Code Playgroud)

并像这样导入Observable :

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

不是这样的:

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

您可能需要删除node_modules文件夹并启动npm install,因为其中似乎有一些错误的包。