什么是TypeScript中的F-有界多态性

时间:2016-08-27 02:06:24

标签: javascript typescript

我注意到TypeScript版本1.8支持F-Bounded Polymorphism。通俗地说,它是什么以及它如何有用?我假设因为早期包含这个功能它必须非常重要。

1 个答案:

答案 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!*