Angular 角6与算子

Angular 角6与算子,angular,Angular,我有一个简单的ts组件,我有一个问题。我将项目更新为angular 6,但rxjs运算符出现错误。当我尝试从组件运行此代码时: import { Component } from '@angular/core'; import { Observable, resolve, pipe } from 'rxjs'; import { map, take } from 'rxjs/operators'; import { interval } from 'rxjs/observable/interva

我有一个简单的ts组件,我有一个问题。我将项目更新为angular 6,但rxjs运算符出现错误。当我尝试从组件运行此代码时:

import { Component } from '@angular/core';
import { Observable, resolve, pipe } from 'rxjs';
import { map, take } from 'rxjs/operators';
import { interval } from 'rxjs/observable/interval';
...
observableData: number;
subscription: Object = null;

constructor() {
    this.subscribeObservable();
}

getObservable() { 
return Observable
    .interval(1000)
    .take(10)
    .map((v) => v * v);
}

subscribeObservable() { 
this.subscription = this.getObservable()
    .subscribe( v => this.observableData = v);
}

ngOnDestroy() { 
    if (this.subscription) {
      this.subscription.unsubscribe();
    }
}
我得到了流动误差:

src/app/app.component.ts2,22中的错误:错误TS2305:Module'C:/Workspace/bitbucket/async pipe with promissions and observable/node_modules/rxjs/index'没有导出的成员'resolve'。 src/app/app.component.ts25,10:错误TS2339:类型“typeof Observable”上不存在属性“interval”。 src/app/app.component.ts37,25:错误TS2339:类型“Object”上不存在属性“unsubscribe”

有人知道怎么修吗

编辑:

当我尝试时:

import { Observable, resolve, pipe, interval, map, take } from 'rxjs';
我发现错误:

src/app/app.component.ts2,22中的错误:错误TS2305:Module'C:/Workspace/bitbucket/async pipe with promissions and observable/node_modules/rxjs/index'没有导出的成员'resolve'。 src/app/app.component.ts2,47:error TS2305:Module'C:/Workspace/bitbucket/async pipe with promises and observable/node_modules/rxjs/index'没有导出的成员“map”。 src/app/app.component.ts2,52:error TS2305:Module'C:/Workspace/bitbucket/async pipe with promissions and observable/node_modules/rxjs/index'没有导出的成员'take'。 src/app/app.component.ts25,10:错误TS2339:类型“typeof Observable”上不存在属性“interval”。 src/app/app.component.ts37,25:错误TS2339:类型“Object”上不存在属性“unsubscribe”

My package.json:

{
  "name": "async-pipe-with-promises-and-observable",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^6.0.3",
    "@angular/common": "^6.0.3",
    "@angular/compiler": "^6.0.3",
    "@angular/core": "^6.0.3",
    "@angular/forms": "^6.0.3",
    "@angular/http": "^6.0.3",
    "@angular/platform-browser": "^6.0.3",
    "@angular/platform-browser-dynamic": "^6.0.3",
    "@angular/router": "^6.0.3",
    "bootstrap": "^4.1.1",
    "core-js": "^2.5.4",
    "rxjs": "^6.1.0",
    "rxjs-compat": "6.1.0",
    "zone.js": "^0.8.26"
  },
  "devDependencies": {
    "@angular/compiler-cli": "^6.0.3",
    "@angular-devkit/build-angular": "~0.6.5",
    "typescript": "~2.7.2",
    "@angular/cli": "~6.0.5",
    "@angular/language-service": "^6.0.3",
    "@types/jasmine": "~2.8.6",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~8.9.4",
    "codelyzer": "~4.2.1",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~1.7.1",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~1.4.2",
    "karma-jasmine": "~1.1.1",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.3.0",
    "ts-node": "~5.0.1",
    "tslint": "~5.9.1"
  }
}

运营商现在都应处于以下状态:

from "rxjs"

由于angular 6使用rxjs 6

运算符现在应全部处于以下状态:

from "rxjs"
由于angular 6使用rxjs 6,请尝试以下操作:

import { Component } from '@angular/core';
import { Observable, Subscription, interval, pipe } from 'rxjs';
import { map, take } from 'rxjs/operators';
替换订阅:Object=null;按订阅:订阅=null

替换

return Observable
    .interval(1000)
    .take(10)
    .map((v) => v * v);

试试这个:

import { Component } from '@angular/core';
import { Observable, Subscription, interval, pipe } from 'rxjs';
import { map, take } from 'rxjs/operators';
替换订阅:Object=null;按订阅:订阅=null

替换

return Observable
    .interval(1000)
    .take(10)
    .map((v) => v * v);


我将尝试删除您的node_模块并重新安装。这可能是因为它试图使用您的旧模块,这很遗憾,但什么也没有发生。我会尝试删除您的节点模块并重新安装。这可能是因为它试图使用您的旧模块。这很遗憾,但什么也没有发生。我得到:src/app/app.component.ts24,10:ERROR TS2339:type“typeof Observable”上不存在属性“interval”。是的,因为您的行Observable.interval是错误的。替换为返回间隔1000.10,mapv=>v*v;我在src/app/app.component.ts24中得到:ERROR,10:ERROR TS2339:属性“interval”在类型“typeof Observable”上不存在。是的,因为您的行Observable.interval是错误的。替换为返回间隔1000.10,mapv=>v*v;