Angular HTTP返回Object而不是请求的类型

时间:2018-10-28 13:33:51

标签: angular typescript generics rxjs

我是TS和Angular的新手,在理解RXJS可观察变量或如何将JSON编组到TS类中时遇到了一些麻烦。我有一个带类的Angular应用

class Entry {
  // ...

  clone(): Entry {}
}

和服务类别

import {HttpClient} from "@angular/common/http";

class EntryService {

  constructor(
    private http: HttpClient) { }

  getEntries(): Observable<Entry[]> {
    return this.http.get<Entry[]>(this.entriesURL)
      .pipe(
        tap(entries => {
          entries.map(entry => entry.moment = new Date(entry.moment))
        }),
        catchError(this.handleError('getEntries', []))
      );
  }

  // ...
}

在其他地方有订阅

this.entryService.getEntries()
.subscribe(entries => this.entries = entries);

问题是,我从订阅中获取的数组中的条目不是Entry,它们只是没有copy方法的属性。如果我执行console.log(entry.constructor.name),它将打印出Object,并且entry.copyundefined。我以为设置通用参数可以保证返回的值具有该类的所有行为,但是我还需要做其他事情来使http.get返回完整的Entry吗? / p>

0 个答案:

没有答案