node.js - 使用 Angular 版本 2.4.9、TypeScript 和 Webpack 版本 2.2.1 时,类型 'map' 上不存在属性 'Observable<Response>'

标签 node.js angular typescript npm webpack

我正在尝试从 Angular 2 应用程序访问 Web API 方法,我能够使用 Web API 获取记录。但问题是,service.ts 文件显示类型“Observable”上不存在属性“映射”错误。

示例代码:

    import { Injectable } from '@angular/core';
    import { Http } from '@angular/http';
    import { Observable } from 'rxjs/Observable';
    import 'rxjs/Rx';

    @Injectable()
    export class ContactServices 

    {

        private url = 'http://localhost:51498/api/test/';
        constructor(private http: Http) { }

        getContacts():Observable<Object[]> {
            return this.http.get(this.url + 'GetContacts')
                .map(response => response.json())
                .catch(error => {
                    console.log(error);
                    return Observable.throw(error);
                });
        }

        getContactById(id: number) {
            return this.http.get(this.url + 'GetContactList/' + id)
                .map(response => <Contact[]>response.json())
                .catch(error => {
                    console.log(error);
                    return Observable.throw(error);
                });
        }
    }

export class Contact {
    Id: number;
    Name: string;
    Details: string;
}

我正在使用以下版本,

  1. webpack 2.2.1
  2. Angular 2.4.9
  3. Node 6.10.0
  4. npm 4.1.2
  5. typescript 2.2.1

最佳答案

问题出在 TypeScript 版本上。我已经提到过,它是2.2.1版本,但我的系统有1.8.3版本。所以才会出现这个问题。感谢大家审阅此问题。

关于node.js - 使用 Angular 版本 2.4.9、TypeScript 和 Webpack 版本 2.2.1 时,类型 'map' 上不存在属性 'Observable<Response>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42693265/

相关文章:

javascript - 如何测试 Angular 中嵌入的内容?

Angular 2 主从指令通信。指令间通信

angular - 分派(dispatch)新操作时,如何避免通过循环存储对象而重新渲染组件

javascript - 是否可以在 JS 类的构造函数中调用获取初始数据的异步函数?

typescript - 使用 Typescript 类时的 Vue react 性

node.js - 如何在防火墙后面配置 grunt-connect-proxy?

javascript - 使用 socket.io 解析 cookie

typescript - Angular 2 异步自定义验证器

node.js - 在 Nginx 和 NodeJS 上配置 HTTPS

node.js - protractor 测试在重启后选择边缘浏览器而不是 chrome