Я новичок в угловом и npm, но, узнав, у меня есть ошибка, с кодом, который, похоже, работает на источнике, который я пытаюсь воспроизводить (here).ts Property 'map' не существует по типу 'Observable <Response>'
Я предполагаю, что это связано с моей средой разработки, но я не могу точно понять, почему.
Это мой код:
return this.http.get('api/cards.json')
.map((response:Response) => <Card[]>response.json().data)
.do(data=>console.log(data))
.catch(this.handleError);
На .map
, Visual Studio код дает мне эту ошибку:
ts Property 'map' does not exist on type 'Observable'
Если я игнорировать эту ошибку и перейти к браузеру, Я такой же сообщение.
Я создал свой проект с angular-cli
, а моя угловая версия на самом деле 2.4.4. Сервер работает с инструментом ng serve
.
Я сделал Somes поисков:
property map does not exist on observable response in angular -> Я не использую Visual Studio 2015, а также, я в курс моего визуального кодекс студии (и это, кажется, что ошибка была решена бен через некоторое время).
Angular 2 2.0.0-rc.1 Property 'map' does not exist on type 'Observable<Response>' not the same as issue report -> Моей командная строка ничего не знает о tsc
и после того, как я сделал Любую идею npm i typescript -g
(и перезапущен как VS code
и ng serve
что происходит неправильно (я полагаю, что-то не до на сегодняшний день, но я не знаю, что и как обновлять его).
Вы должны ссылаться на 'библиотеку RxJs' в вашем модуле/компонента/сервиса (то, что вы пишете здесь) как' Observable' (тип вернулся из http.get' является частью этой библиотеки ,В учебниках на угловом сайте есть хорошее объяснение того, как вы потребляете «Observable» и как создать сопоставление ссылок для более распространенных методов, которые вы хотите использовать, например, «map» в RxJs lib. –
Igor
@ Igor: Я думаю, вы правы. Должен ли я делать что-то особенное для «установки» 'RxJs', потому что просто добавление' import {Observable} из 'rxjs/Observable'; 'к моей службе не решает проблему – J4N
См. Мой ответ ниже, карта считается «оператором», и для загрузки вам необходимо объявить зависимость импорта. Поскольку это довольно распространенный оператор для использования (вместе с другими), проще создать общий файл импорта, а затем импортировать его. Это в значительной степени взято из справки/документации Angular. – Igor