nativescript-tns build android错误,“对象”类型的参数无法分配给“响应”类型的参数

时间:2019-02-01 17:30:22

标签: android angular typescript nativescript

我建立一个nativescript应用程序,并做TNS构建Android的时候得到这些错误:

src / app / services / cabin.service.ts(21,86):错误TS2345:类型'Object'的参数不能分配给'Response'类型的参数。   “对象”类型可分配给很少的其他类型。您的意思是改用“ any”类型吗?     类型“对象”中缺少属性“类型”。 src / app / services / cabin.service.ts(27,86):错误TS2345:“对象”类型的参数无法分配给“响应”类型的参数。   “对象”类型可分配给很少的其他类型。您的意思是改用“ any”类型吗? src / app / services / cabin.service.ts(33,86):错误TS2345:“对象”类型的参数无法分配给“响应”类型的参数。   “对象”类型可分配给很少的其他类型。您是要改用“ any”类型吗?

这是我的cab.service.ts

SELECT users.username as bn, contact.subject, contact.message, contact.date FROM users RIGHT JOIN contact ON users.userid = contact.userid_fk ORDER BY date DESC

第21、23、33行具有以下代码:

import { Injectable } from '@angular/core';
import { Cabin } from '../shared/cabin';
import { Observable } from 'rxjs';
import { Http, Response } from '@angular/http';
import { HttpClient, HttpHeaders } from "@angular/common/http";
import { baseURL } from '../shared/baseurl';
import { ProcessHTTPMsgService } from './process-httpmsg.service';
import { map } from "rxjs/operators";
import { catchError } from "rxjs/operators";

@Injectable()
export class CabinService {

  cabins: Cabin[];

  constructor(private http: HttpClient,
              private processHTTPMsgService: ProcessHTTPMsgService) { }

  getCabins(): Observable<Cabin[]> {
    return this.http.get(baseURL + 'cabins')
                    .pipe(map(res => { return this.processHTTPMsgService.extractData(res); }),
                    catchError(error => { return this.processHTTPMsgService.handleError(error); }));
  }

  getCabin(id: number): Observable<Cabin> {
    return  this.http.get(baseURL + 'cabins/'+ id)
                    .pipe(map(res => { return this.processHTTPMsgService.extractData(res); }),
                    catchError(error => { return this.processHTTPMsgService.handleError(error); }));
  }

  getFeaturedCabin(): Observable<Cabin> {
    return this.http.get(baseURL + 'cabins?featured=true')
                    .pipe(map(res => { return this.processHTTPMsgService.extractData(res)[0]; }),
                    catchError(error => { return this.processHTTPMsgService.handleError(error); }));
  }

}

我是打字稿和母语的新手

这是我的processHttpMessage.service     从'@ angular / core'导入{可注射};

 .pipe(map(res => { return this.processHTTPMsgService.extractData(res); }),

1 个答案:

答案 0 :(得分:0)

默认情况下使用HttpClient时,您将接收JSON数据,除非您修改responseType or observe parameters

res已经是您的JSON对象,因此应该是

public extractData(res: any) {
    // Unless you have further extraction to be done, this method is not required at all
    return res;
}