我有一个Product
接口,其属性items
是一个集合,只能接受两种类型的项目:ServiceTypeOne
和ServiceTypeTwo
。
这是我提出的,但我不确定这是否是正确的方法呢?
export interface Product{
...
items: ProductItem<AcceptedServices>[];
...
}
export interface ProductItem<T extends AcceptedServices>{
item:T;
quantity:number;
}
export type AcceptedServices = ServiceTypeOne | ServiceTypeTwo;
问题:
Product.items
的后期阶段,我将要检查项目的特定类型(如果其基础类型为ServiceTypeOne
或ServiceTypeTwo
并且基于type为该类型运行一些特定的方法)。如何实现?答案 0 :(得分:3)
似乎在int main(){
hashtable *ht = create();
insert(ht, "James Bond", "zero7");
return 0;
}
中使用泛型是没有意义的,您可以将其定义为:
ProductItem
我想检查项目的特定类型
您可以定义自定义type guards:
export interface ProductItem {
item: AcceptedServices;
quantity: number;
}