Angular: класс с массивом иностранных ключей - PullRequest
1 голос
/ 17 января 2020

Я построил класс "еда" с двумя свойствами, как в учебном туре по героям из angular:

export class Meal {
  id: number;
  name: string;
}

Теперь я хочу объявить класс, такой как "Mealplan". Каждый План Питания должен содержать пять Объектов Питания, например:

export class Mealplan {
  weekId: number;
  mealPlan: Meal[] = new Array(5)
}

Важно, что я хочу добавить существующие Схемы Питания в План Питания. Я не хочу создавать новые объекты еды. Рекомендуется ли просто ссылаться на идентификатор еды в Mealplan? Например:

  createDb() {
    const meal = [
      {
        id: 101,
        name: 'Tatar',
        price: 18.00,
        description: "Sojasauce / Chili / Crème fraîche / Tobiko"
      };

и

const mealPlan = [
 {
  id: 1,
  mealPlan: [101, 101, 101, 101, 101]
 }
]

Это лучший способ справиться с этой проблемой? Или лучше использовать карту, список или что-то еще?

1 Ответ

2 голосов
/ 17 января 2020

Вы можете связать тип с foodPlan следующим образом:

export class Mealplan {
  weekId: number;
  mealPlan: [Meal, Meal, Meal, Meal, Meal];
}

Теперь это будет недействительно :

let plan = new MealPlan();
plan.mealPlan = [new Meal(),new Meal(),new Meal(),new Meal()];

, тогда как это действительный :

let plan = new MealPlan();
plan.mealPlan = [new Meal(),new Meal(),new Meal(),new Meal(), new Meal()];
...