Angular 2 beta.17: właściwość "mapa" nie istnieje na typie " obserwowalny "
Właśnie uaktualniłem z Angular 2 beta16 do beta17 , który z kolei wymaga rxjs 5.0.0-beta.6. (Changelog tutaj: https://github.com/angular/angular/blob/master/CHANGELOG.md#200-beta17-2016-04-28) w beta16 wszystko działało dobrze jeśli chodzi o funkcjonalność Obserwowalną/map. Następujące błędy pojawiły się po uaktualnieniu i występują, gdy typescript próbuje transpile:
- właściwość 'map' nie istnieje na typie 'Observable' (wszędzie gdzie używałem mapy z obserwowalnym)
- c:/path/node_modules/rxjs/add/operator/map.d. ts (2,16): błąd TS2435: Moduły otoczenia nie mogą być zagnieżdżane w innych modułach lub przestrzeniach nazw.
- c:/path/node_modules/rxjs/add/operator/map.d. ts (2,16): błąd TS2436: deklaracja modułu Ambient nie może określić względnej nazwy modułu.
Widziałem to pytanie / odpowiedź, ale to nie rozwiązuje problemu: zauważalne błędy z Angular2 beta.12 i RxJs 5 beta.3
Mój appBoot.ts wygląda tak (już odwołuję się do rxjs / map):
///<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
]);
Czy ktoś wie, co się dzieje? 16 answers
Musisz zaimportować operator map
:
import 'rxjs/add/operator/map'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-25 13:45:12
Zaktualizowałem wtyczkę gulp-typescript do najnowszej wersji (2.13.0) i teraz kompiluje się bez przeszkód.
UPDATE 1: wcześniej używałem gulp-typescript w wersji 2.12.0
Aktualizacja 2: Jeśli aktualizujesz do Angular 2.0.0-rc.1, musisz wykonać następujące czynności w swoim appBoot.plik 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
]);
Ważne jest odniesienie do es6-shim / index.d. ts
Zakłada się, że zainstalowałeś typy es6-shim, jak pokazano proszę.:
Więcej o typach instalacji z Angular tutaj: https://angular.io/docs/ts/latest/guide/typescript-configuration.html#! # typowanie
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-13 06:29:24
Rxjs 5.5 "właściwość ' map' nie istnieje na typie Observable.
Problem był związany z tym, że trzeba dodać rury wokół wszystkich operatorów.
Zmień to,
this.myObservable().map(data => {})
Do tego
this.myObservable().pipe(map(data => {}))
I
Importuj mapę w ten sposób,
import { map } from 'rxjs/operators';
To rozwiąże Twoje problemy.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-18 06:49:53
W moim przypadku nie wystarczyłoby zamieścić tylko Mapy i obietnicy:
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/toPromise';
Rozwiązałem ten problem importując kilka komponentów rxjs jako oficjalna dokumentacja zaleca:
1) zaimportuj instrukcje w jednej aplikacji / operatorach rxjs.plik 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) Importuj sam operator rxjs w swojej usłudze:
// Add the RxJS Observable operators we need in this app.
import './rxjs-operators';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-23 07:35:30
Jeśli zdarzy ci się zobaczyć ten błąd w VS2015, jest problem z github i obejście opisane tutaj:
Https://github.com/Microsoft/TypeScript/issues/8518#issuecomment-229506507
To pomogło mi rozwiązać problem. Poza tym upewnij się, że masz wersję typescript powyżej 1.8.2Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-18 12:26:18
OSTATECZNA ODPOWIEDŹ DLA TYCH, KTÓRZY UŻYWAJĄ ANGULAR 6:
Dodaj poniższe polecenie w swoim *.obsługa.ts plik "
import { map } from "rxjs/operators";
**********************************************Example**Below**************************************
getPosts(){
this.http.get('http://jsonplaceholder.typicode.com/posts')
.pipe(map(res => res.json()));
}
}
Używam windows 10;
Angular6 with typescript V 2.3.4.0
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-15 03:38:16
import 'rxjs/add/operator/map';
&
npm install rxjs@6 rxjs-compat@6 --save
Pracował dla mnie
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-28 16:49:07
In Angular 2x
W przykładzie.komponent.ts
import { Observable } from 'rxjs';
W przykładzie.komponent.html
Observable.interval(2000).map(valor => 'Async value');
W kątowym 5x lub kątowym 6x:
W przykładzie.komponent.ts
import { Observable, interval, pipe } from 'rxjs';
import {switchMap, map} from 'rxjs/operators';
W przykładzie.komponent.html
valorAsync = interval(2500).pipe(map(valor => 'Async value'));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-10 17:10:38
Aktualizacja 29 września 2016 dla Angular 2.0 Final & VS 2015
Obejście nie jest już potrzebne, aby to naprawić wystarczy zainstalować TypeScript w wersji 2.0.3.
Poprawka pobrana z edycji na Ten komentarz do wydania github .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-29 03:34:53
Jak rozumiem to z powodu rxjs
ostatniej aktualizacji. Zmienili niektóre operatory i składnię. Następnie powinniśmy importować rx
operatorów takich jak ten
import { map } from "rxjs/operators";
Zamiast tego
import 'rxjs/add/operator/map';
I musimy dodać rurkę wokół wszystkich operatorów takich jak ten
this.myObservable().pipe(map(data => {}))
Źródło jest tutaj
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-22 13:30:56
Jak zasugerował Justin Scofield w swojej odpowiedzi, dla najnowszego wydania Angular 5 i dla Angular 6, Jak na 1 czerwca, 2018, po prostu import 'rxjs/add/operator/map';
nie wystarczy, aby usunąć błąd TS:
[ts] Property 'map' does not exist on type 'Observable<Object>'.
Konieczne jest uruchomienie poniższego polecenia, aby zainstalować wymagane zależności:
npm install rxjs@6 rxjs-compat@6 --save
po czym błąd zależności importowej zostanie rozwiązany!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-01 12:51:13
Miałem do czynienia z podobnym błędem. To zostało rozwiązane, gdy zrobiłem te trzy rzeczy:
-
Aktualizacja do najnowszej wersji rxjs:
npm install rxjs@6 rxjs-compat@6 --save
-
Importuj mapę i obietnicę:
import 'rxjs/add/operator/map'; import 'rxjs/add/operator/toPromise';
-
Dodano nową instrukcję importu:
import { Observable, Subject, asapScheduler, pipe, of, from, interval, merge, fromEvent } from 'rxjs';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-15 06:47:38
Wygląda na to, że najnowszy RxJS wymaga typescript 1.8, więc typescript 1.7 zgłasza powyższy błąd.
Rozwiązałem ten problem poprzez aktualizację do najnowszej wersji maszynopisu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-30 23:21:25
Podobne komunikaty o błędach pojawią się podczas przechodzenia z wersji 5 do 6. Oto odpowiedź na zmianę na rxjs-6.
Importuj poszczególne operatory, a następnie użyj pipe
zamiast łączenia.
import { map, delay, catchError } from 'rxjs/operators';
source.pipe(
map(x => x + x),
delay(4000),
catchError(err => of('error found')),
).subscribe(printResult);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-17 15:07:18
Jeśli używasz angular4 użyj poniżej Importuj. powinno zadziałać .
Import "rxjs / add / operator / map';
Jeśli używasz angular5 / 6, użyj map with pipe i zaimportuj poniżej
Import { map } z "rxjs/operatory";
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-11 10:36:54
Właściwość "mapa" nie istnieje na typie "obserwowalna odpowiedź" kąt 6
Rozwiązanie: Update Angular CLI and Core Version
ng update @angular/cli //Update Angular CLi
ng update @angular/core //Update Angular Core
npm install --save rxjs-compat //For Map Call For Post Method
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-15 06:50:18