铸造从JSON HTTP响应对接不表现为预期

时间:2019-02-02 20:32:17

标签: json angular typescript http

我正在从角度客户端向服务器发出获取请求。我在其中进行调用的服务需要返回一个带有对象数组的observable。问题在于打字稿似乎不允许我将JSON转换为我的界面。

这是JSON对象服务器发送作为响应:

export interface Message {
    title: string;
    body: string;
}

这是我要将主体投射到的界面。那里的身体应该包含这些对象的数组:

export interface ICommonGameCard {
    id: string;
    pov: POVType;
    title: string;
    image_pair?: ICommonImagePair;
    best_time_solo: number[];
    best_time_online: number[];
}

export enum POVType{Simple, Free};

此所述发出请求的服务:

public getGameCards(povType: POVType): Observable<ICommonGameCard[]> {
    return this.http.get<ICommonGameCard[]>(this.BASE_URL + this.GET_ALL_CARDS_URL)
        .pipe(
          map((res: Response) => return <ICommonGameCard>res.json().body),
          catchError(this.handleError<Message>("getUsernameValidation")),
      );

}

显然,这不起作用。我正在尝试将响应的JSON强制转换为消息接口,然后访问消息的接口主体(其中存在ICommonGameCard数组)。

我收到此错误:

[ts]
Argument of type 'OperatorFunction<Response, ICommonGameCard>' is not assignable to parameter of type 'OperatorFunction<ICommonGameCard[], ICommonGameCard>'.
  Type 'Response' is missing the following properties from type 'ICommonGameCard[]': length, pop, push, concat, and 26 more. [2345]

我的语法到底有什么问题?

1 个答案:

答案 0 :(得分:0)

cin
std::cin.ignore(<A big number like 256>,'\n')