我建立一个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); }),
答案 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;
}