我注意到TypeScript版本1.8支持F-Bounded Polymorphism。通俗地说,它是什么以及它如何有用?我假设因为早期包含这个功能它必须非常重要。
答案 0 :(得分:5)
它基本上意味着您拥有函数引用的泛型列表,并且在泛型列表中,一种类型可以引用另一种类型,以定义两种泛型类型之间的关系。
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!*