Как я могу объявить несколько переменных в массиве непосредственно в TypeScript - PullRequest
0 голосов
/ 17 июня 2019

Мне нужно объявить несколько переменных одного типа (интерфейса) в то время, когда я объявляю массив.

Я использую его в проекте Angular 8, очевидно, использую машинопись.

У меня есть это сейчас:


export class GridComponent {

  pizza0: Pizza;
  pizza1: Pizza;
  pizza2: Pizza;
  pizza3: Pizza;
  pizza4: Pizza;
  pizza5: Pizza;

  constructor() {}

}

interface Pizza {
 name: string;
 ingredients: number;
 price: string;
}

И я хочу что-то вроде:


PizzaList: Array<Pizza> = new Array<Pizza>(pizza0, pizza1, pizza2, pizza3, pizza4, pizza5);


interface Pizza {
 name: string;
 ingredients: number;
 price: string;
}

И что каждая из переменных, которые я определяю в массиве, объявлена ​​изначально

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

Полагаю, вы хотите, чтобы pizzaList был массивом объектов Pizza.Вы можете создать это следующим образом:

const pizzaList: Array<Pizza> = [
    { name: 'Margherita', ingredients: 1337, price: 9.99 },
    { name: 'Quattro stagioni', ingredients: 1337, price: 9.99 }
];

Если вы просто хотите объявить его как «Массив пиццы длиной 6», это невозможно.Вы не можете объявить его как массив объектов Pizza с фиксированной длиной, вы можете только объявить его как массив объектов Pizza без указания длины.

0 голосов
/ 17 июня 2019

Вы можете сделать это без инициализации массива с помощью new Array<T>.

Если ваши значения предопределены, вы можете сделать это следующим образом:

PizzaList: Array<Pizza> = [pizza0, pizza1, pizza2, pizza3, pizza4, pizza5];

Или вы можете создать их как:

PizzaList: Array<Pizza> = [
    new Pizza(/*args*/),
    new Pizza(/*args*/),
    new Pizza(/*args*/)
];
...