Angular2,Property' map'在类型' Observable'中不存在

时间:2016-11-17 15:14:12

标签: angular

导入:

import { Component,OnInit } from '@angular/core';
import { FormGroup, FormControl, Validators, FormBuilder } from '@angular/forms';
import { Application } from './Application';
import { Http, Response } from '@angular/http';
import { NgModule } from '@angular/core'; 
import { Headers } from '@angular/http';
import 'rxjs/add/operator/map';
import 'rxjs/Rx';

方法:

 saveApplcation() {
    var application = new Application();
    application.ssnr = this.form.value.ssnr;
    application.loanamount = this.form.value.amount;
    application.email = this.form.value.email;
    application.phonenumber = this.form.value.phonenumber;
    application.repaymenttime = this.form.value.time;

    var body: string = JSON.stringify(application);
    var headers = new Headers({ "Content-Type": "application/json" });

    this._http.post("api/Application/", body, { headers: headers })
        .map(returnData => returnData.toString())
        .subscribe(
        retur => {
            this.showForm = false;
            this.showMenu = true;
        },
        error => alert(error),
        () => console.log("done post-api/loan")
        );

};

错误说明:TS2339 Property' map'类型' Observable'中不存在。 TypeScript虚拟项目C:\ Users \ kim \ Documents \ Visual Studio 2015 \ Projects \ NewOblig3 \ NewOblig3 \ app \ app.component.ts 52 Active

我见过人们导入&rxjs / add / operator / map&#39 ;;并表示它会起作用,但不是我的情况。

2 个答案:

答案 0 :(得分:3)

您正在使用Visual Studio。那里有同样的问题。

我通过安装解决了它 TypeScript for Visual Studio 2015

它还修复了IntelliSense for Observable。

答案 1 :(得分:1)

从早期测试版升级后,我遇到了同样的问题。我的问题(我怀疑你的问题)在配置文件package.json和systemjs.config.js中。老实说,我并不是100%确定修复问题的确切行是什么,但特别是systemjs.config.js的格式是完全不同的。

我推荐的解决方案是使用Quick Start Tutorial中的这两个配置文件来替换您自己的配置文件,然后运行npm install

我更新后,我不需要import 'rxjs/add/operator/map';修复;一切正常。

注意:您应该在进行这些更改之前备份这些文件,以确保不会丢失自定义项,并且升级可能会导致其他问题。