Http-вызов возвращает объект (на самом деле просто строку JSON, которая позже будет проанализирована HttpClient) с идентификатором и именем и без функции. Вы можете проверить это на своей вкладке сети.
Что вы можете сделать, это просто использовать конструктор:
export class Hero {
id: number;
name: string;
getName(): string {
return this.name;
}
contructor(id, name) {
this.id = id;
this.name = name;
}
}
И позже сопоставьте ответ от http-вызова с нужным вам объектом:
getHeroes (): Observable<Hero[]> {
return this.http.get<Hero[]>(this.heroesUrl)
.pipe(
map(hero => new Hero(hero.id, hero.name),
catchError(this.handleError('getHeroes', []))
);
}