У меня есть следующая машинопись интерфейс:машинописи, как объявить вложенный тип данных от интерфейса
interface IFoodShop {
name: string;
owner: string;
foods: Array<{
id: number,
name: string,
isVegetarian: boolean
}>
}
У меня есть функция, которая требует, чтобы быть В параметре тот же типа данных как массив еды из интерфейса IFoodShop. Как я объявляю это, похоже на что-то такое, что не работает.
// check if food is vegetarian
isVegatarianFood(data: IFoodShop.foods) {
}
Я понимаю, что я могу сломать типы данных, как показано ниже:
interface IFoodShopFood {
id: number,
name: string,
isVegetarian: boolean
}
interface IFoodShop {
name: string;
owner: string;
openDate: Date;
foods: IFoodShopFood
}
// check if food is vegetarian
isVegatarianFood(data: IFoodShopFood) {
}
Но это мне кажется ненужным, когда у меня есть много массивов декларировать. Как я могу просто сказать, что тип данных должен соответствовать продуктам типа данных вложенных интерфейсов?
Я думаю, во втором примере он должен быть 'продуктов: IFoodShopFood []', в противном случае это не массив больше , Что вы подразумеваете под ненужным? Если вы хотите использовать типы в нескольких местах, вы должны определить их. Вы также можете определить новый тип, который будет таким же структурным, но это будет много накладных расходов. –