来自Observable <type>的项目没有功能

时间:2018-03-09 09:54:49

标签: angular typescript rxjs

我通过HTTPClient将对象转换为Observable,因此我的getTasks()函数返回Observable<Task[]>

this.taskList = this.taskService.getTasks()
.pipe(
    map( list =>
        list.filter(t => console.log(t)) 
    )
);

如果我记录每个Task,我会注意到这些对象不是真正的Task个对象,就像我用构造函数构建它们一样:他们没有我在课堂上定义的getter函数。

这是预期的行为吗? 如果是这样,我是否必须使用map运算符构建每个对象?

1 个答案:

答案 0 :(得分:0)

是的,Observable<Task[]>只是TypeScript的类型保护。当编译为JavaScript时,这意味着什么,您的响应只是一个简单的JavaScript对象,可能来自JSON.parse

例如,您可以根据Task的内容执行这些操作。

this.taskList = this.taskService.getTasks()
  .pipe(
    map(list => list.map(task => new Task(task))),
  );

或使用Object.assign

this.taskList = this.taskService.getTasks()
  .pipe(
    map(list => list.map(task => Object.assign(new Task(), task))),
  );