typescript - कोणीय 2 बीटा.17: संपत्ति 'मानचित्र' प्रकार 'ऑब्जर्वेबल<प्रतिक्रिया>' पर मौजूद नहीं है




angular rxjs (11)

जो इस साल 6 का उपयोग करता है के लिए अंतिम जवाब:

अपने * .service.ts फ़ाइल में नीचे कमांड जोड़ें "

import { map } from "rxjs/operators";

**********************************************Example**Below**************************************
getPosts(){
this.http.get('http://jsonplaceholder.typicode.com/posts')
.pipe(map(res => res.json()));
}
}

मैं विंडोज़ 10 का उपयोग कर रहा हूं;

प्रकार वी। 2.3.4.0 के साथ कोणीय 6

मैं सिर्फ Angular 2 Beta16 से Beta17 में अपग्रेड हुआ , जिसके बदले में rxjs 5.0.0-beta.6 की आवश्यकता है। (यहां चेंगलॉग: https://github.com/angular/angular/blob/master/CHANGELOG.md#200-beta17-2016-04-28 ) बीटा 16 में सभी ऑब्जर्वेबल / मैप फंक्शनलिटी के बारे में अच्छी तरह से काम कर रहे थे। टाइप करने के बाद निम्नलिखित त्रुटियां दिखाई दीं और तब होती हैं जब टाइपस्क्रिप्ट ट्रांसपाइल का प्रयास करता है:

  1. प्रॉपर्टी 'मैप' 'ओब्जर्वेबल' टाइप पर मौजूद नहीं है (कहीं भी मैंने ऑब्जर्वेबल के साथ मैप का इस्तेमाल किया है)
  2. c: /path/node_modules/rxjs/add/operator/map.d.ts (2,16): त्रुटि TS2435: अन्य मॉड्यूल या नामस्थानों में परिवेशी मॉड्यूल नेस्ट नहीं किए जा सकते।
  3. c: /path/node_modules/rxjs/add/operator/map.d.ts (2,16): त्रुटि TS2436: परिवेश मॉड्यूल घोषणा एक सापेक्ष मॉड्यूल नाम निर्दिष्ट नहीं कर सकती।

मैंने इस प्रश्न / उत्तर को देखा है लेकिन यह समस्या को हल नहीं करता है: Angular2 Beta.12 और RxJ2 5 बीटा के साथ अवलोकन योग्य त्रुटियां

मेरा appBoot.ts इस तरह दिखता है (मैं पहले से ही rxjs / मैप को संदर्भित कर रहा हूँ):

///<reference path="./../node_modules/angular2/typings/browser.d.ts"/>
import {bootstrap} from "angular2/platform/browser";
import {ROUTER_PROVIDERS} from 'angular2/router';
import {HTTP_PROVIDERS} from 'angular2/http';
[stuff]
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/toPromise';
import {enableProdMode} from 'angular2/core';
import { Title } from 'angular2/platform/browser';


//enableProdMode();
bootstrap(AppDesktopComponent, [
    ROUTER_PROVIDERS,
    HTTP_PROVIDERS,
    Title
]);

किसी को भी किसी भी विचार है कि क्या haywire जा रहा है?


कोणीय 2x में

Example.component.ts में

import { Observable } from 'rxjs';

Example.component.html में

  Observable.interval(2000).map(valor => 'Async value');

कोणीय 5x या कोणीय 6x में:

Example.component.ts में

import { Observable, interval, pipe } from 'rxjs';
import {switchMap, map} from 'rxjs/operators';

Example.component.html में

valorAsync = interval(2500).pipe(map(valor => 'Async value'));

Rxjs 5.5 "प्रॉपर्टी 'मैप' ऑब्जर्वेबल टाइप पर मौजूद नहीं है।

समस्या इस तथ्य से संबंधित थी कि आपको सभी ऑपरेटरों के आसपास पाइप जोड़ने की आवश्यकता है।

इसे बदलो,

this.myObservable().map(data => {})

इसके लिए

this.myObservable().pipe(map(data => {}))

तथा

इस तरह नक्शा आयात करें,

import { map } from 'rxjs/operators';

यह आपके मुद्दों को हल करेगा।


आपको map ऑपरेटर को आयात करने की आवश्यकता है:

import 'rxjs/add/operator/map'

जैसा कि जस्टिन स्कोफिल्ड ने अपने उत्तर में सुझाया है, import 'rxjs/add/operator/map'; 5 की नवीनतम रिलीज़ के लिए और import 'rxjs/add/operator/map'; 6 के लिए, जैसा कि 1 जून, 2018 को, बस import 'rxjs/add/operator/map'; टीएस त्रुटि को दूर करने के लिए पर्याप्त नहीं है: [ts] Property 'map' does not exist on type 'Observable<Object>'.

आवश्यक निर्भरताएं स्थापित करने के लिए नीचे दिए गए कमांड को चलाने के लिए इसकी आवश्यकता है: npm install [email protected] [email protected] --save जिसके बाद map आयात निर्भरता त्रुटि हल हो जाती है!


जैसा कि मैं समझता हूं कि यह rxjs अंतिम अद्यतन के कारण है। उन्होंने कुछ ऑपरेटरों और सिंटैक्स को बदल दिया है। इसके बाद हमें इस तरह से rx ऑपरेटरों को आयात करना चाहिए

import { map } from "rxjs/operators";

इसके अलावा

import 'rxjs/add/operator/map';

और हमें इस तरह से सभी ऑपरेटरों के चारों ओर पाइप जोड़ने की आवश्यकता है

this.myObservable().pipe(map(data => {}))

स्रोत here


मैं इसी तरह की त्रुटि का सामना कर रहा था। जब मैंने ये तीन काम किए तो यह हल हो गया:

  1. नवीनतम rxjs के लिए अद्यतन:

    npm install [email protected] rxjs-[email protected] --save
  2. आयात नक्शा और वादा:

    import 'rxjs/add/operator/map';
    import 'rxjs/add/operator/toPromise';
  3. एक नया आयात विवरण जोड़ा गया:

    import { Observable, Subject, asapScheduler, pipe, of, from, interval, merge, fromEvent } from 'rxjs';

मैंने अपने gulp-टाइपस्क्रिप्ट प्लगइन को नवीनतम संस्करण (2.13.0) में अपग्रेड किया और अब यह बिना हिच के संकलन करता है।

अद्यतन 1: मैं पहले gulp-typecript संस्करण 2.12.0 का उपयोग कर रहा था

अद्यतन 2: यदि आप कोणीय 2.0.0-rc.1 में अपग्रेड कर रहे हैं, तो आपको अपनी appBoot.ts फ़ाइल में निम्नलिखित करने की आवश्यकता है:

///<reference path="./../typings/browser/ambient/es6-shim/index.d.ts"/>
import { bootstrap } from "@angular/platform-browser-dynamic";
import { ROUTER_PROVIDERS } from '@angular/router-deprecated';
import { HTTP_PROVIDERS } from '@angular/http';
import { AppComponent } from "./path/AppComponent";
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/toPromise';
// import 'rxjs/Rx'; this will load all features
import { enableProdMode } from '@angular/core';
import { Title } from '@angular/platform-browser';



//enableProdMode();
bootstrap(AppComponent, [
    ROUTER_PROVIDERS,
    HTTP_PROVIDERS,
    Title
]);

Es6-shim / index.d.ts के संदर्भ में महत्वपूर्ण बात है

यह मानते हैं कि आपने यहां दिखाए गए अनुसार es6- शिम टाइपिंग स्थापित की है:

टंकण पर अधिक यहाँ कोणीय से स्थापित करें: https://angular.io/docs/ts/latest/guide/typescript-configuration.html#!#typings


यदि आप कोणीय 4 का उपयोग आयात से नीचे कर रहे हैं। यह काम करना चाहिए ।

आयात 'rxjs / add / ऑपरेटर / नक्शा';

यदि आप कोणीय 5/6 का उपयोग कर रहे हैं, तो पाइप के साथ मानचित्र का उपयोग करें और एक के नीचे आयात करें

"rxjs / ऑपरेटर्स" से {map} आयात करें;


कोणीय 2.0 अंतिम और वीएस 2015 के लिए अद्यतन 29 सितंबर 2016

वर्कअराउंड की अब आवश्यकता नहीं है, इसे ठीक करने के लिए आपको टाइपस्क्रिप्ट संस्करण 2.0.3 स्थापित करने की आवश्यकता है।

https://github.com/Microsoft/TypeScript/issues/8518#issuecomment-229506507 पर संपादन से लिया गया फिक्स।






rxjs