我是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.copy
是undefined
。我以为设置通用参数可以保证返回的值具有该类的所有行为,但是我还需要做其他事情来使http.get
返回完整的Entry
吗? / p>