我有苹果和梨-它们都有一个isDecayed
属性:
interface Apple {
color: string;
isDecayed: boolean;
}
interface Pear {
weight: number;
isDecayed: boolean;
}
这两种类型都可以出现在我的水果篮中(多次):
interface FruitBasket {
apples: Apple[];
pears: Pear[];
}
现在让我们假设我的篮子是空的:
const fruitBasket: FruitBasket = { apples: [], pears: [] };
现在我们从篮子里随机拿出一种:
const key: keyof FruitBasket = Math.random() > 0.5 ? 'apples': 'pears';
const fruits = fruitBasket[key];
当然,没有人喜欢腐烂的水果,所以我们只挑选新鲜的:
const freshFruits = fruits.filter((fruit) => !fruit.isDecayed);
不幸的是Typescript告诉我:
无法调用其类型缺少调用签名的表达式。类型'((callbackfn:(value: Apple,index: number,array: Apple[]) => any,thisArg?:any) => Apple[]) | ...‘没有兼容的调用签名。
这是怎么回事--只是Typescript不喜欢新鲜水果,还是这是一个Typescript bug?
您可以在官方Typescript Repl中亲自体验。
https://stackoverflow.com/questions/42427393
复制相似问题