【发布时间】:2018-06-26 23:10:09
【问题描述】:
我在 Angular 服务中有这个 fetch 函数。一切正常,但 TypeScript 抱怨 “类型 'Object' 上不存在属性 'statuses'。”
我想我需要为数据对象创建一个接口,但是当我尝试这样做时,我不确定在哪里声明它。我也尝试声明 HttpResponse 但这需要一个参数。任何线索都会很棒!
export class Status {
constructor(
public workflowId: string,
public spawnTime: number,
public spawnValue: string,
public workflowName: string
) {
}
}
fetch(command, params?) {
return this.http.post(`http://localhost:4000/${command}`, params)
.pipe(
map((data): Status[] => {
const statuses = [];
for (const status of Object.keys(data.statuses)) {
const newStatus = new Status(
status,
data.statuses[status]['spawn-time'],
data.statuses[status]['spawn-value'],
data.statuses[status]['workflow-name']
);
statuses.push(newStatus);
}
return statuses;
})
)
.pipe(
catchError(this.handleError)
);
}
【问题讨论】:
-
Status对象(属性)中有什么?也是data返回的类型Status[]?很确定它是一个Response对象。 -
我在帖子中添加了更多信息
-
你能从你的数据中提供一些示例输出吗?我创建了 stackblitz 试图复制它。 stackblitz.com/edit/angular-p2zfrw
-
data['statuses'][status]['spawn-time']
标签: angular typescript