Метод машинописного текста не является функцией - PullRequest
0 голосов
/ 25 мая 2020

У меня есть массив объектов. Когда я пытаюсь вызвать метод данного объекта, я получаю ошибку «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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...