Переменная в *ngFor должна быть инициализирована или не равна нулю?

#angular #typescript

#angular #typescript

Вопрос:

Допустим, у меня есть сложный объект, у которого не будет данных, пока я не выполню вызов API для его заполнения, чего не произойдет, пока пользователь не нажмет кнопку и т.д. Данные из этого сложного объекта отображаются с помощью *ngFor итерации по списку, который является свойством объекта.

Например:

 *ngFor="let hero of heroes.myList"
  

Если объект heroes определен, но не инициализирован, например:

 heroes: MyComplexobject;
  

Один из способов — просто инициализировать heroes внутри ngInit , используя что-то вроде этого:

 heroes = new MyComplexObject();
  

Нужно ли не только объявлять, но и инициализировать все переменные? *ngFor Требуется ли, чтобы объект heroes в этом случае был как ненулевым, так и определенным еще до его выполнения?

Комментарии:

1. Почему ее не нужно инициализировать? Если все, что у вас есть, это объявление типа, фактическое значение равно undefined . Даже если бы это было null так, как бы это повторилось?

2. Хороший момент. Несмотря на то, что ей не нужно ничего показывать, пока не произойдет действие пользователя, вызывающее вызов api для заполнения данных, шаблон пытается выполнить рендеринг при первоначальном отображении, следовательно, имеет смысл, что переменная должна быть инициализирована. Есть ли возможность защитить переменную от значения null или undefined?

3. .myList»> myList»></ngcontainer></ng-container>