阿波罗客户端对象实例化?

时间:2018-06-28 11:38:25

标签: typescript angular6 apollo-client

我想知道我的期望是否正确:Apollo客户端是否应该实例化TypeScript对象以换取请求?

这是我与Angular6和Apollo-client一起使用以从后端获取城市列表的代码,但是返回的对象不是City类的实例。

类模型:

export class City {
  id?: number;
  name: string;
  zip: number;
}

GraphQL查询:

export const ALL_CITY_QUERY = gql`
  {
   allCity {
     id
     name
     zip
   }
  }
`;

export interface AllCityQueryResponse {
  allCity: Array<City>;
}

调用查询:

this.apollo.watchQuery<AllCityQueryResponse>({
  query: ALL_CITY_QUERY
})
  .valueChanges
  .subscribe(response => {
    response.data.allCity.forEach(c => {
      console.log(c);                   // Javascript object
      console.log(c instanceof City);   // Always false
    });
  });

这是阿波罗的正常行为,还是我在某个地方犯了错误?

提前谢谢

0 个答案:

没有答案