Angular:带有外键数组的类

问题描述 投票:0回答:1

我已经建立了具有两个属性的“ meal”类,就像从angular的《英雄之旅》教程中一样:

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

现在,我想声明一个类似“ Mealplan”的类。每个膳食计划应包含五个膳食对象,例如:

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

重要的是,我想将现有的餐点添加到餐计划中。我不想创建新的用餐对象。是否建议仅在Mealplan中参考餐ID?例如:

  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]
 }
]

这是解决这个问题的最好方法吗?还是使用地图或列表或其他方式会更好?

angular typescript in-memory-database angular-tour-of-heroes
1个回答
1
投票

您可以像这样将类型与meatPlan关联:

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

现在,这样做将是invalid

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()];
© www.soinside.com 2019 - 2024. All rights reserved.