Создать и назначить свойство объекта динамически набирать - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть интерфейс, объявленный следующим образом:

export interface OurHistory {
  ourHistory?: object;
  step1?:object;
  step2?:object;
}

Внутри класса у меня есть

export class HistoryComponent implements OnInit, OnDestroy {
  myHistory:OurHistory;

  let ourHistory = [];
  ourHistory = this.allHistory.fields['ourHistory'];
  this.myHistory.ourHistory = ourHistory[0];
}

Я получаю сообщение об ошибке: «Невозможно установить свойство ourHistory» из неопределенного

1 Ответ

0 голосов
/ 21 апреля 2020

Это происходит потому, что на вашей второй последней строке: this.myHistory равно undefined. Вы пытаетесь получить доступ к свойству ourHistory из undefined, которое не нравится компилятору.

Вам необходимо создать экземпляр свойства, как указано в комментариях к вашему вопросу.

Один из способов сделать это можно сделать так:

export class HistoryComponent implements OnInit, OnDestroy {
  myHistory: OurHistory;

  let ourHistory = [];
  ourHistory = this.allHistory.fields['ourHistory'];
  this.myHistory = {ourHistory: ourHistory[0]};
}

Таким образом, мы создаем экземпляр свойства myHistory с новым объектом:

{
   ourHistory: someValue
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...