我注意到TypeScript的1.8版本支持F-Bounded Polymorphism。通俗地说,这是什么,它有何帮助?我认为,既然早期就包含了这个功能,那一定非常重要。
这基本上意味着您拥有函数引用的通用列表,并且在该通用列表中,一种类型可以引用另一种类型,以定义两个通用类型之间的关系。
function someFunction <T, U> (t: T, u: U): T {
return t;
}
const dog = someFunction(new Dog(), new Cat());
太棒了!
现在,通过有界泛型,它们可以相互引用来定义彼此之间的关系界限:
function someFunction <T extends U, U> (t: T, u: U): T {
return t;
}
const dog = someFunction(new Dog(), new Pet());
const cow = someFunction(new Cow(), new Animal());
const BOOM = someFunction(new Cat(), new Dog()); // *BEWM!*