错误TS1128:.map()运算符应声明或声明

时间:2018-08-09 13:37:44

标签: angularjs typescript

尝试了来自不同站点的几种解决方案,但无济于事。 问题是:尝试运行我的应用但出现以下错误:


  

10%的建筑模块0/1模块1个活动中…\ src \ app \ contacts \ contacts.component.tsERROR src / app / contact.service.ts(18,7):错误TS1128:声明或声明错误。   src / app / contact.service.ts(27,7):错误TS1128:需要声明或声明。   src / app / contact.service.ts(33,7):错误TS1128:需要声明或声明。


    import { Injectable } from '@angular/core';
    import { Http, Headers, Response} from '@angular/http';
    import { Contact } from './contact';
    import 'rxjs/add/operator/map';
    import { map } from 'rxjs/operators';

            @Injectable({
      providedIn: 'root'
    })
    export class ContactService {

        constructor(private http: Http) { }

        // Retrieving contacts
        getContacts() {
          return this.http.get('http://localhost:3000/api/contacts');
          .map((res: any) => res.json());

        }

        // Adding contacts
        addContact(newContact) {
          var headers = new Headers;
          headers.append('Content-Type', 'application/json');
          return this.http.post('http://localhost:3000/api/contact', newContact, {headers: headers});
          .map((res: Response) => res.json());
        }

        // Delete contact method
        deleteContact(id) {
          return this.http.delete('http://localhost:3000/api/contact' + id);
          .map((res: Response) => res.json());
        }
    }

.map((res: any) => res.json());行说:

  

需要声明或声明。

1 个答案:

答案 0 :(得分:0)

您显然在;之前有.map。应该是

return this.http.get('http://localhost:3000/api/contacts')
     .map((res: any) => res.json()); 

因为这导致语句结尾和.map出现语法错误