我想在提供程序中获取所有HTTP请求,并从不同的组件访问它。 但我在退货声明中遇到了一个问题。
请在db.ts中找到我的提供者代码:
public getData(endPoint) {
this.http.get('http://localhost:3000/' + endPoint + '?order=id.asc')
.map(res => res.json())
.subscribe(
(data) => {
var dataRetrieved = [];
for (var i=0 ; i<data.length; i++) {
dataRetrieved.push(data[i]);
}
return dataRetrieved;
},
(err) => {
console.log(err);
return 'error';
});
}
我想检索组件中的数据(home.ts):
this.data = db.getData('comments');
this.data的声明是:
public data: Array<{
id,
title,
description
}>;
但我有一个问题'不可能分配'void“类型来输入”{id:any,title:any,description:any} []“'。
你能帮忙吗?
提前致谢!
答案 0 :(得分:0)
发生错误是因为函数getData()
的返回类型为void
,而您在getData()
中保留响应的变量属于Array<{id, title, description}>
类型这显然是不匹配的。您可以在此处执行以下操作来解决此问题:
data
类型的any
- &gt; public data: any
。Array<{id, title, description}>
返回getData()
- &gt; public getData(): Array<{id, title, description}>