我是打字稿新手。在这里,我有以下代码,看起来像,
interface FirstOriginal {
active: boolean;
status: boolean;
}
interface Product {
id: number;
name: string;
Original: FirstOriginal;
}
interface MainProduct {
id: number;
Name: string;
Original: Product;
}
class MainService {
buildproduct = memoize((products: Array<Product | MainProduct>, ismain) => {
const group = _.groupBy(products, (bsp: Product) =>
!ismain
? bsp?.Original?.active ?? undefined
: bsp?.Original?.Original?.active ?? undefined
);
});
}
现在,在这里我无法执行bsp?.Original?.active ?? undefined : bsp?.Original?.Original?.active ?? undefined
。因为我只能在一个界面上做到这一点,所以任何人都可以帮我这个忙。喜欢,
如何将这两个接口用于相同的类函数。
谢谢。
要指定可选属性或参数,可以在属性/参数名称前使用?
。
例如:
memoize((products?: Array<Product | MainProduct>, ismain?:number) {
}
或
interface Product {
id?: number;
name?: string;
Original?: FirstOriginal;
}
另一种方法是使用[Partial][1]
。部分将返回给定接口的所有子集。
memoize((products?: Array<Partial<Product | MainProduct>>, ismain?:number) {
}