i具有以下打字稿接口:
interface IFoodShop {
name: string;
owner: string;
foods: Array<{
id: number,
name: string,
isVegetarian: boolean
}>
}
i具有一个函数,该函数要求Paramater与Interface 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) {
}
,当我有很多阵列要声明时,这对我来说似乎是不必要的。我如何简单地说数据类型需要匹配嵌套接口数据类型食物?
但是,当我有很多阵列要声明时,这似乎是不必要的。
您可以使用以下语法(其称为A 查找类型):
interface IFoodShop {
name: string;
owner: string;
foods: Array<{
id: number,
name: string,
isVegetarian: boolean
}>
}
// check if food is vegetarian
function isVegatarianFood(data: IFoodShop['foods']) { }
isVegatarianFood([{ id: 123, name: '123', isVegetarian: true }]); // okay
isVegatarianFood([{ id: 123, name: '123', isVegetarian: 'ERRROR' }]); // ERROR