Antwort

78

Sie müssen den map Operator importieren:

import 'rxjs/add/operator/map' 

Oder allgemeiner:

import 'rxjs/Rx'; 
+0

nachdem ich es importiere. es zeigt mehr Fehler an –

+0

Sie sind nicht glücklich :-(Was sind diese Fehler? –

+0

Ungültiger Modulname in Erweiterung, Modul '../../Observable' konnte nicht gefunden werden.\t Eigenschaft 'Karte' existiert nicht auf Typ 'Observable '. –

3

In meinem Fall wäre es nicht genug, um nur Karte und Versprechen einschließen:

Ich löste dieses Problem, indem ich einige rxjs Bestandteile importierte

1) Import-Anweisungen in einer app/rxjs-operators.ts Datei: als official documentation empfiehlt

// 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) Import rxjs-Betreiber selbst in Ihren Diensten:

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

Ich finde es nicht richtig, rxjs-operators in alle Dienste einzubeziehen. Es sollte nur bei app.module.ts enthalten sein aber unglücklicherweise wirft ng test einen fehler wenn operatoren nicht an bestimmten orten importiert werden –

19

Ich hatte das gleiche Problem mit Angular 2.0.1, weil ich Observable von

I importiert habe löse mein Problem auf diesem Weg beobachtbare importieren statt

import { Observable } from 'rxjs'; 
+2

außer jetzt bekommen wir einen blacklist fehler –

+0

Diese praxis gilt als nicht bündelgröße-freundlich, da diese aussage alle operatoren von 'Observable' importiert (einschließlich derjenigen, die sie nicht verwenden) Verwenden Sie die Option "letable operators", die Intro ist. Stattdessen sollten Sie jeden Operator einzeln importieren. in RxJS v5.5, um ein besseres Baumschütteln zu unterstützen. –

2

Ich hatte das gleiche Problem, ich wurde mit Visual Studio 2015, die eine ältere Version von Typoskript hatte.

Nach dem Upgrade der Erweiterung wurde das Problem behoben.

Download Link

+0

Dies ist eine nicht offensichtliche Antwort, und eine, die für mich arbeitete - danke. –

2

I Angular 5.2 verwenden und wenn ich import 'rxjs/Rx'; verwende es wirft mir folgende Flusen Fehler: TSLint: Dieser Import schwarze Liste gesetzt wird, importieren Sie ein Submodul statt (Import-schwarze Liste)

Siehe Abbildung unten: Import of rxjs/Rx is blacklisted in Angular 5.2

LÖSUNG: Gelöst von Importieren nur die Operatoren, die ich brauchte. Beispiel folgt:

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

Also die Lösung wäre, nur die notwendigen Operatoren speziell zu importieren.

+0

Ich bin froh, dass ich den ganzen Weg bis auf den Grund gelesen habe. Vielleicht sollte ich TSLint verwenden. – AndrewBenjamin

Verwandte Themen