Angular 2 2.0.0-rc.1 Свойство ‘map’ не существует в типе ‘Observable ‘ не совпадает с сообщением о выпуске

в то время как это похоже на ту же проблему, что и Angular 2 beta.17: Property ‘map’ не существует в типе ‘Observable ‘

это новая версия, и эти решения не работают для этой новой выпущенной версии

Я обновляю до последней версии Angular 2 rc1 и не могу заставить вещи компилироваться. У меня были проблемы с не признанием «Обещания». Я закончил установку специальной инструкции es6-prom, чтобы решить эту проблему. Я попытался ввести различные операторы импорта, но не повезло. Я работаю в visual studio 2015

import 'rxjs/Rx'; import {Observable} from 'rxjs/Observable'; import {Observer} from 'rxjs/Observer'; import 'rxjs/add/operator/share'; import 'rxjs/add/operator/map'; return this._http.post(url, null, args).map(extractData).toPromise(); 

но продолжать получать свойство ‘map’ не существует в типе ‘Observable’

мой файл пакета

 "dependencies": { "@angular/common": "2.0.0-rc.1", "@angular/compiler": "2.0.0-rc.1", "@angular/core": "2.0.0-rc.1", "@angular/http": "2.0.0-rc.1", "@angular/platform-browser": "2.0.0-rc.1", "@angular/platform-browser-dynamic": "2.0.0-rc.1", "@angular/router": "2.0.0-rc.1", "@angular/router-deprecated": "2.0.0-rc.1", "systemjs": "0.19.27", "es6-shim": "^0.35.0", "reflect-metadata": "^0.1.3", "rxjs": "5.0.0-beta.6", "zone.js": "^0.6.12", "bootstrap": "^3.3.6", "breeze-client": "~1.5.6", "handlebars": "^4.0.5" }, "devDependencies": { "typescript": "^1.8.10", "typings": "^0.8.1", "gulp": "^3.9.1", "jasmine-core": "~2.4.1", "karma": "^0.13.22", "karma-chrome-launcher": "^0.2.3", "karma-coverage": "^0.5.5", "remap-istanbul": "^0.6.3", "karma-jasmine": "^0.3.8", "karma-jasmine-html-reporter": "^0.2.0", "http-server": "^0.9.0" } 

вы пытались с этим импортом? меня устраивает

  import {Observable} from 'rxjs/Rx'; import 'rxjs/add/operator/map'; 

Вот обходной путь. jjokela и VahidN намекали на это также своими комментариями. Я нашел его, посмотрев сообщение в блоге Деборы Кураты. Она описывает использование Angular2 с шаблоном проекта ASP.NET 4, а не новый шаблон ASP.NET 5 RC, который я использую.

Чтобы исправить это, обратитесь к этой инструкции, найденной по адресу https://github.com/Microsoft/TypeScript/issues/8518#issuecomment-229506507

Это исправление предназначено для включения в выпуске TypScript 2.0 для Visual Studio. Пока вы не выполните инструкции, приведенные ниже.

Для VS 2015 (обновление 3):

Установите обновление VS 2015 3 Замените C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TypeScript \ typescriptServices.js с файлом в https://raw.githubusercontent.com/Microsoft/TypeScript /Fix8518-U3/lib/typescriptServices.js . Сначала возьмите локальную резервную копию.

Для VS 2015 (обновление 2):

Установите обновление VS 2015 2 Замените C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TypeScript \ typescriptServices.js с файлом в https://raw.githubusercontent.com/Microsoft/TypeScript /Fix8518/lib/typescriptServices.js . Сначала возьмите локальную резервную копию.

Для VS 2013:

Установите TypeScript 1.8.5 ( https://www.microsoft.com/en-us/download/details.aspx?id=48739 ) Замените C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TypeScript \ typescriptServices.js с файлом в https://raw.githubusercontent.com/Microsoft/TypeScript/Fix8518-Dev12/lib/typescriptServices.js . Сначала возьмите локальную резервную копию.

У меня была такая же проблема. Кажется, он решил после добавления этой строки в class AppComponent.

 import 'rxjs/Rx'; 

Ничего кроме

 import { Observable } from 'rxjs/Rx'; 

Эта проблема, скорее всего, связана с https://github.com/Microsoft/TypeScript/issues/7415, который еще не видел полной версии VS. Можно создавать источники локально и использовать VS Dev Mode .

Я испытываю такую ​​же проблему после обновления до Angular2 RC. Я получаю VS 2015 ошибки Intellisense для свойства «карта» не существует в типе «Observable».

Я использую grunt-ts, чтобы сделать свою транспиляцию, так что это не влияет на мою способность превзойти, но это раздражает, увидев ее в редакторе как ошибки, когда их раньше не было.

Я считаю, что проблема связана с загрузкой скриптов для Visual Studio. https://www.microsoft.com/en-us/download/details.aspx?id=48593

В настоящее время он находится в версии 1.8.6, и я считаю, что он запускает intellisense для Visual Studio, а также сборку в сборке машинописных текстов, если именно так вы ее настраиваете. Поэтому нам просто придется подождать, пока новая версия Typcript для Visual Studio не исчезнет.

Дэн. У меня была серия проблем, пытающихся добиться успешного запуска, как только я добавила Observable в свой код, как только я обновился до Angular 2 rc1. Для меня это было добавлением

  "emitDecoratorMetadata": true, 

в файл tsconfig.json. Как только я добавил эту строку, она корректно отобразилась как в IIS, так и при запуске npm. Мой полный файл tsconfig.json выглядит следующим образом:

 {"compilerOptions": { "noEmitOnError": true, "removeComments": false, "sourceMap": true, "target": "es5", "experimentalDecorators": true, "module": "commonjs", "moduleResolution": "node", "emitDecoratorMetadata": true, "noImplicitAny": true, "suppressImplicitAnyIndexErrors": true }, "exclude": [ "node_modules", "typings/main", "typings/main.d.ts" ]} 

(извините за форматирование … уже поздно). Надеюсь это поможет.

в toPromise.d.ts

добавить “import {Observable} из ‘../../Observable’;”

 import { ToPromiseSignature } from '../../operator/toPromise'; import {Observable} from '../../Observable'; declare module '../../Observable' { interface Observable { toPromise: ToPromiseSignature; } } 

Вы можете сделать то же самое для map.d.ts

Надеюсь это поможет.

Ваш импорт хорош. Основная причина проблемы описана на https://github.com/ReactiveX/rxjs/issues/1540

Чтобы исправить это, вам нужно перейти на новый тип 1.8.

Обратите внимание, что при запуске tsc вы используете глобальный машинописный tsc -v (проверьте tsc -v ). Чтобы обновить глобальный машинописный tsc -v , запустите npm i typescript -g .

Если вы хотите использовать typescript, определенную в package.json , вам нужно выполнить ее через "scripts" , то есть добавить "build": "tsc" и выполнить ее с npm run build .

У меня такая же проблема. Я запускаю TypeScript 1.8.11. Боюсь, у меня нет решения. Я думаю, что это настоящая проблема либо с rxjs, либо с угловым 2 rc 1.

Я понизил rxjs до бета-2, и он исправил эту проблему. К сожалению, угловой rc1 зависит от бета-6, поэтому полная установка npm не выполняется.

 import { Injectable } from '@angular/core'; import { Http, Response, Headers, RequestOptions} from '@angular/http'; import 'rxjs/Rx'; import {Observable} from 'rxjs/Observable'; import 'rxjs/add/operator/map'; return this._http.post(url, null, args).map(this.extractData) 

Сделать функцию extractData

Попробуйте это. Он будет работать на вас. Он работает для меня.

Я получил эту работу для компонента ag-grid угловой 2, который находится здесь .

Мне нужны тиски для Promise, которые вы получаете: tsd install es6-shim

затем в параметрах вашего машинописного текста укажите загруженный файл типизации как один из файлов для компиляции в tsconfig.json, то есть:

 { "compilerOptions": { "target": "es5", "module": "commonjs", "moduleResolution": "node", "sourceMap": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "removeComments": false, "noImplicitAny": false, "outDir": "lib" }, "files": [ "typings/es6-shim/es6-shim.d.ts", // the typings file "app/boot.ts" // you application ] } 

Установка пигментов для es6-shim разрешила для меня такую ​​же проблему:

 typings i es6-shim --ambient --save-dev 

Это было потрясающее изменение в бета-версии 6, и чтобы обойти его, вы могли бы включить ссылку на внутренние файлы типирования внутри углового. К сожалению, они были удалены в 2.0.0-rc.0, поэтому теперь вы должны полагаться на внешние типизации для того же самого.

если вы только что обновили до Angular2 rc1, убедитесь, что вы используете новые операторы импорта @angular, а не angular2:

 `import { Component } from 'angular2/core';` 

становится,

 `import { Component } from '@angular/core';` 

Я знаю, что это кажется простым, но это может вызвать эту проблему.

Найдите бета-версию 2.0.0 для TypeScript для Visual Studio 2015. Этот выпуск решил такую ​​же проблему на моей машине. Но помните, что это бета-версия.

Если вы обновляетесь от кандидата на выпуск Angular2 (например, 2.0.0-rc.1) до версии 2.xx, вам необходимо:

  1. Обновите файл package.json, чтобы обновить его с помощью файла https://github.com/angular/quickstart/blob/master/package.json.

  2. Обновите файл systemjs.config.js, чтобы обновить его с помощью файла https://github.com/angular/quickstart/blob/master/systemjs.config.js.

  3. Измените оператор импорта:

    import {Observable} from 'rxjs'

  • Как использовать ResolveComponentFactory (), но со строкой в ​​качестве ключа
  • Цепочка RxJS Наблюдаемые данные http в Angular2 с использованием TypeScript
  • Angular2: Как использовать несколько экземпляров одного и того же сервиса?
  • $ http Auth Headers в AngularJS
  • Как правильно импортировать операторы из пакета `rxjs`
  • Angular2: Как загрузить данные перед рендерингом компонента?
  • Как глубоко наблюдать массив в angularjs?
  • Каково надлежащее использование EventEmitter?
  • Angular 2 beta.17: Property 'map' не существует в типе 'Observable '
  • Тестирование. Невозможно разрешить все параметры для (ClassName)
  • Как обращаться с кодами статуса http, отличными от 200 в Angular 2
  • Interesting Posts

    Я использую JDBC Connection Pooling?

    Два экземпляра Windows Vista при загрузке после неудачной очистки

    Почему не следует выводить из c ++ std string class?

    Использование памяти фонового изображения Android

    Если вы переписываете поле в подclassе classа, подclass имеет два поля с тем же именем (и другого типа)?

    Ловушка внешней переменной

    Ошибка в if / while (условие) {: отсутствует Значение, в котором требуется TRUE / FALSE

    Как составить 3-х столбчатую диаграмму с разделителями, использующими openoffice

    Как сделать пунктирную / пунктирную линию в Android?

    Ошибка 0x800f0922 установка .NET 3.5 на Windows 8

    Как отключить значок «Получить Windows 10» в области уведомлений (лоток)?

    Android Facebook 4.0 SDK Как получить электронную почту, дату рождения и пол пользователя

    Подсветка клавиатуры в диспетчере устройств?

    Рассчитать общее количество дней за определенный месяц

    Генерировать случайные значения в C #

    Давайте будем гением компьютера.