TypeScript Массив объектов с методом reference и push () - PullRequest
0 голосов
/ 07 сентября 2018

В последнее время я обнаружил загвоздку в своем коде. Я работаю с моими пользовательскими объектами и их массивами. Я нашел один случай, когда метод push () работает, а другой - нет.

Первый случай (работает нормально):

class MyObject{
  private reference: d3.Selection<SVGElement>;

  public constructor(ref: d3.Selection<SVGElement>){
    this.reference = ref;
  }
}

interface ViewModel{
  objects: MyObject[] 
}

class MyApp{
  private root: d3.Selection<SVGElement>

  private viewModel: ViewModel;

  constructor(options: Type){
    this.root = options.root
    this.viewModel.objects.push(new MyObject(this.root))
  }
}

Второй случай (не работает):

class MyObject{
  private reference: d3.Selection<SVGElement>;

  public constructor(ref: d3.Selection<SVGElement>){
    this.reference = ref;
  }
}

class MyApp{
  private root: d3.Selection<SVGElement>

  private objects: MyObject[];

  constructor(options: Type){
    this.root = options.root
    this.objects.push(new MyObject(this.root)) //seems to freeze the whole program
  }
}

Что я делаю не так? Любая помощь будет принята с благодарностью.

Michal

1 Ответ

0 голосов
/ 07 сентября 2018

Вы еще не инициализировали свой массив objects:

private objects: MyObject[] = [];

Это может сработать:)

Хотя вы не инициализировали viewModel в своем «рабочем» примере. Итак, я полагаю, что вы опубликовали урезанную версию своего кода?

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