Я только что перешел с 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 все работало хорошо в отношении функциональности Observable / map. Следующие ошибки появились после того, как я обновился и появляются, когда машинопись пытается перенести:
- Свойство 'map' не существует для типа 'Observable' (везде, где я использовал карту с наблюдаемой)
- c: /path/node_modules/rxjs/add/operator/map.d.ts (2,16): ошибка TS2435: окружающие модули не могут быть вложены в другие модули или пространства имен.
- c: /path/node_modules/rxjs/add/operator/map.d.ts (2,16): ошибка TS2436: объявление окружающего модуля не может указать относительное имя модуля.
Я видел этот вопрос / ответ, но он не решает проблему: наблюдаемые ошибки в Angular2 beta.12 и RxJs 5 beta.3
Мой appBoot.ts выглядит так (я уже ссылаюсь на 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
]);
Кто-нибудь имеет представление о том, что происходит с Haywire?
typescript
angular
rxjs
Брандо
источник
источник
Ответы:
Вам необходимо импортировать
map
оператора:источник
import { map } from 'rxjs/operators'
, но другой ответ имеет больше деталей.Я обновил свой плагин gulp-typcript до последней версии (2.13.0) и теперь он компилируется без проблем.
ОБНОВЛЕНИЕ 1: я ранее использовал gulp-typcript версии 2.12.0
ОБНОВЛЕНИЕ 2: Если вы обновляетесь до Angular 2.0.0-rc.1, вам нужно сделать следующее в файле appBoot.ts:
Важной вещью является ссылка на es6-shim / index.d.ts
Это предполагает, что вы установили es6-shim, как показано здесь:
Подробнее о наборе текста из Angular можно узнать здесь: https://angular.io/docs/ts/latest/guide/typescript-configuration.html#!#typings
источник
map
сообщении об ошибке, чтобы включить примечание для пользователей с похожими проблемами. Большое спасибо :)import 'rxjs/Rx';
// Загружает все функцииRxjs 5.5 «Свойство map» не существует для типа Observable.
Проблема была связана с тем, что нужно добавить трубу вокруг всех операторов.
Измени это,
к этому
И
Импортировать карту, как это,
Это решит ваши проблемы.
источник
В моем случае недостаточно включить только карту и обещание:
Я решил эту проблему, импортировав несколько компонентов rxjs, так как официальная документация рекомендует:
1) Импортировать операторы в один файл app / rxjs-operator.ts:
2) Импортируйте сам rxjs-оператор в свой сервис:
источник
Если вы столкнулись с этой ошибкой в VS2015, здесь есть проблема и обходной путь github:
https://github.com/Microsoft/TypeScript/issues/8518#issuecomment-229506507
Это помогло мне решить
property map does not exist on observable
проблему. Кроме того, убедитесь, что у вас версия машинописного текста выше 1.8.2источник
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TypeScript\typescriptServices.js
с помощью typescriptService работала для VS 15. ( перезапустите vs после замены файла )ЗАКЛЮЧИТЕЛЬНЫЙ ОТВЕТ ДЛЯ тех, кто использует англ. 6:
Добавьте приведенную ниже команду в ваш файл * .service.ts "
Я использую Windows 10;
angular6 с машинописью V 2.3.4.0
источник
&
npm install rxjs@6 rxjs-compat@6 --save
работал на меня
источник
В угловых 2х
В example.component.ts
В example.component.html
В угловых 5x или угловых 6x:
В example.component.ts
В example.component.html
источник
ОБНОВЛЕНИЕ 29 сентября 2016 для Angular 2.0 Final & VS 2015
Обходной путь больше не нужен, для исправления вам просто нужно установить TypeScript версии 2.0.3 .
Исправление взято из редактирования этого комментария к выпуску github .
источник
Как я понимаю это из-за
rxjs
последнего обновления. Они изменили некоторые операторы и синтаксис. После этого мы должны импортироватьrx
операторы, как этоimport { map } from "rxjs/operators";
вместо этого
И нам нужно добавить трубу вокруг всех операторов, как это
this.myObservable().pipe(map(data => {}))
Источник здесь
источник
Как предложил Джастин Скофилд в своем ответе, для последней версии Angular 5 и Angular 6, начиная с 1 июня 2018 года,
import 'rxjs/add/operator/map';
недостаточно просто устранить ошибку TS:[ts] Property 'map' does not exist on type 'Observable<Object>'.
Для установки необходимых зависимостей необходимо выполнить приведенную ниже команду:
npm install rxjs@6 rxjs-compat@6 --save
после этогоmap
ошибка зависимости от импорта будет устранена!источник
Я столкнулся с подобной ошибкой. Это было решено, когда я сделал эти три вещи:
Обновление до последней версии rxjs:
Импортировать карту и обещание:
Добавлен новый оператор импорта:
источник
Похоже, что последний RxJS требует машинописного текста 1.8, поэтому машинописный текст 1.7 сообщает об ошибке выше.
Я решил эту проблему путем обновления до последней версии машинописного текста.
источник
tsc
из команды , пожалуйста , проверьтеtsc -v
;-) Использование «сценариев» еще лучше идея, см stackoverflow.com/a/37034227/478584Подобные сообщения об ошибках будут появляться при переходе с версии 5 на 6. Вот ответ для изменения на rxjs-6.
Импортируйте отдельные операторы, затем используйте
pipe
вместо цепочки.источник
Если вы используете angular4, используйте ниже импорта. он должен работать .
импорт 'rxjs / add / operator / map';
Если вы используете angular5 / 6, тогда используйте карту с pipe и импортируйте ниже
import {map} из "rxjs / operator";
источник
свойство 'map' не существует для типа 'наблюдаемый отклик' angular 6
Решение: обновить угловой CLI и базовую версию
источник