由于没有API响应适合所需数据接口的大小,因此我们需要转换HttpResponse以使其与我们的类型定义方法相匹配
得到一个错误,指出“ Tag []”类型上不存在“结果”
Interface Tag{
title:string;
}
searchTag(term:string):Observable<Tag[]>{
const url = 'api/tags'
return this.http.get<Tag[]>(url).pipe(map(tags=>tags.Result)) <<-error here
}
请注意,由于GET'api / tags'响应如下所示,我正在将Observable响应映射到Result对象中,这就是为什么我应该将管道中的上面的标签映射到 Result 。>
{
"Operation": "GET/allTags",
"Count": 2,
"Result": [{"title": "tsadg"}]
}
答案 0 :(得分:0)
正如@jonrsharpe所建议的那样,您告诉TS,HTTP客户端实例将以Tag形状返回响应,其中Result在此处未定义!尽管您必须重塑http响应提示类型以使其像
<{Result:Tag[]}>
现在TS不会反对访问结果,因为它是形状的一部分