У меня есть массив объектов. Когда я пытаюсь вызвать метод данного объекта, я получаю ошибку «X не является функцией». Я просмотрел большинство подобных вопросов здесь, на SO, но не смог найти ни одного, похожего на мою проблему.
Вот определение моего класса.
export interface EpisodePreviewInterface {
checkSubtitleStatus();
}
export class EpisodePreview implements EpisodePreviewInterface{
...
checkSubtitleStatus() {
if(this._apiId == ""){
this._submitBufferToApi();
return 0;
}
if(this._parsed != true){
this._getCurrentStatus();
return 1;
}
return 2;
}
...
}
Тогда у меня есть массив из EpisodePreview
s на моей странице angular.
Если я попытаюсь получить доступ к свойству данного объекта, все работает нормально.
console.log(this.globals.previes[0].val1); //Works
Но тогда это вызывает ошибку.
console.log(this.globals.previes[0].checkSubtitleStatus()); //checkSubtitleStatus is not a function
Я пробовал несколько способов реализации метода. В том числе method = () => {}
эт c. но с тем же результатом.
Обновление
Код публикации, в котором я заполняю массив.
for (var i = 0; i < 10; i++){
let a = { version: i} as EpisodePreview;
this.previews.push(a);
}