TypeScript中的F-Bounded多态是什么?

5

我注意到TypeScript的1.8版本支持F-Bounded Polymorphism。通俗地说,这是什么,它有何帮助?我认为,既然早期就包含了这个功能,那一定非常重要。

1个回答

6

这基本上意味着您拥有函数引用的通用列表,并且在该通用列表中,一种类型可以引用另一种类型,以定义两个通用类型之间的关系。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接