基本上,我试图在我的所有调用中使用 HttpClient 而不是 Http,因此我创建了一个接口(interface)来访问响应的某些属性,它对我的大多数调用都工作正常;但问题是我提前输入了这段代码:
const URL = 'https://maps.google.com/maps/api/geocode/json';
this.searchField = new FormControl();
this.results$ = this.searchField.valueChanges
.debounceTime(500)
.switchMap(query => this.http.get(`${URL}?address=${query}`))
.map(response => response)
.map(response => response.results);
我试图在最后两行将名为 APIResponse 的接口(interface)分配给 response
,如下所示:.map(response:APIResponse => ...)
,但是它显然会引发语法错误。
我应该在哪里包含响应类型?或者我该如何更改我的代码才能这样做?
提前致谢。
最佳答案
就我个人而言,我会这样做:
.map(response => response.json() as ApiResponse)
.map(response => response.results);
顺便说一句,如果您要使用 Angular 4.3 中引入的新 HttpClient
,则无需手动转换为 JSON,只需编写:
this.httpClient.get<ApiResponse>(`${URL}?address=${query}`
.map(response => response.results);
关于angular - 如何在 typescript 中使用 map 运算符上的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46875647/