2016-05-13 70 views

回答

78

您需要導入map操作:

import 'rxjs/add/operator/map' 

或者更一般地說:

import 'rxjs/Rx'; 
+0

我輸入之後。它顯示更多的錯誤 –

+0

你不幸運:-(這些錯誤是什麼? –

+0

在擴充模塊名稱無效,模塊'../../Observable'無法找到。\t 屬性'map'在類型'Observable '上不存在。 –

3

在我的情況下,將不夠只包括地圖和承諾:

import 'rxjs/add/operator/map'; 
import 'rxjs/add/operator/toPromise'; 

我解決了這個問題,通過導入幾個rxjs組件作爲official documentation建議:

1)導入語句在一個應用程序/ rxjs-operators.ts文件:

// import 'rxjs/Rx'; // adds ALL RxJS statics & operators to Observable 

// See node_module/rxjs/Rxjs.js 
// Import just the rxjs statics and operators we need for THIS app. 

// Statics 
import 'rxjs/add/observable/throw'; 

// Operators 
import 'rxjs/add/operator/catch'; 
import 'rxjs/add/operator/debounceTime'; 
import 'rxjs/add/operator/distinctUntilChanged'; 
import 'rxjs/add/operator/map'; 
import 'rxjs/add/operator/switchMap'; 
import 'rxjs/add/operator/toPromise'; 

2)進口rxjs運營商本身在服務:

// Add the RxJS Observable operators we need in this app. 
import './rxjs-operators'; 
+0

我覺得它不適合在每個服務中包含rxjs-operators,它應該只包含在app.module.ts中但不幸的是,ng測試拋出錯誤,如果運算符沒有導入特定的地方 –

19

我與Angular 2.0.1相同的問題,因爲我從

導入了Observable
import { Observable } from 'rxjs/Observable'; 

I解決從該路徑輸入可觀察我的問題,而不是

import { Observable } from 'rxjs'; 
+2

,除了現在我們得到一個黑名單錯誤 –

+0

這種做法被認爲不是捆綁大小友好的,因爲該語句導入'Observable'的所有運營商(包括你不喜歡的我們建議使用「可發佈的操作符」,這是介紹的內容。在RxJS v5.5中引入,以支持更好的抖動。 –

2

我有同樣的問題,我是使用Visual Studio 2015年其中有打字稿的舊版本。

升級擴展後問題得到解決。

Download Link

+0

這是一個非顯而易見的答案,併爲我工作 - 謝謝。 –

2

我使用角5.2,當我用import 'rxjs/Rx';它拋出我下面的皮棉錯誤: TSLint:此導入黑名單,導入一個子模塊,而不是(進口黑名單)

見下圖: Import of rxjs/Rx is blacklisted in Angular 5.2

SOLUTION: 通過解決它只導入我需要的運營商。示例如下:

import 'rxjs/add/operator/map'; 
import 'rxjs/add/operator/catch'; 

因此,解決的辦法是隻導入必要的操作員。

+0

我很高興我一直讀到底部。也許我應該開始使用TSLint。 – AndrewBenjamin

相關問題