TypeScript类型参数实现多个接口

时间:2015-07-18 11:00:36

标签: generics interface typescript typescript1.5

C#中,我可以这样做:

class Dictionary<TKey, TVal> where TKey : IComparable, IEnumerable { }

对于泛型类或函数中的类型参数, TypeScript 1.5 beta 是否有办法实现多个接口,而无需为此创建全新的接口?

由于逗号含糊不清,显而易见的方法显然无效。

class Dictionary<TKey extends IComparable, IEnumerable, TValue> { }

顺便说一句,有趣的是,extends可以在泛型中完美地处理接口联合:

class Dictionary<TKey extends IComparable|IEnumerable, TValue> { }

2 个答案:

答案 0 :(得分:21)

Intersection types现在从TS 1.6开始就在这里,您可以在上面的示例中使用它:

class Dictionary<TKey extends IComparable & IEnumerable, TValue> { }

答案 1 :(得分:1)

在TS1.5中,唯一能做到这一点的方法是声明一个扩展A和B的新接口,遗憾的是。

另一种选择是为即将到来的TS1.6祈祷,其中支持intersection type