我正在研究一个文章项目,其中一个服务具有此功能:
query(config: ArticleListConfig): Observable<{articles: Article[], articlesCount: number}> {
const params = {};
Object.keys(config.filters)
.forEach((key) => {
params[key] = config.filters[key];
});
return this.apiService
.get(
'/articles' + ((config.type === 'feed') ? '/feed' : ''),
new HttpParams({ fromObject: params })
);
}
所以我以为它返回了一个可观察对象,但是无论我做什么,它一直不接受返回格式:
query(): Observable<{user: any}>{
return this.http.get('../../assets/data.json');
}
我得到的是以下错误:
类型“可观察”不能分配给类型“可观察<” 文章:任何; }>'。类型“对象”不可分配给类型“ { 文章:任何; }'。
答案 0 :(得分:1)
答案 1 :(得分:0)
。您是否尝试过类似的操作
导致新的HTTPCLIENT直接将您的JSON响应强制转换为您传递的类型(或发布或放置等方法)
query(): Observable<{user: any}>{
return this.http.get<{user: any}>('../../assets/data.json');
}
答案 2 :(得分:0)
您还可以通过以下方式定义通用对象:
{[key: string]: string}
或者,如果它将包含不同于字符串的其他值:
{[key: string]: any}
如果响应可以是任何类型,则可以使用any
。