2016-08-27 3 views
5

Я заметил, что версия 1.8 поддерживает TypeScript F-Bounded Polymorphism. С точки зрения непрофессионала, что это такое и как это полезно? Я предполагаю, что, поскольку эта функция была включена раньше, она должна быть очень важной.Что такое F-ограниченный полиморфизм в TypeScript

ответ

5

Это в основном означает, что у вас есть список обобщений, которые ссылаются на функцию, и внутри этого списка генериков, один тип может ссылаться на другой тип, чтобы определить взаимосвязь между двумя типичными типами.

function someFunction <T, U> (t: T, u: U): T { 
    return t; 
} 

const dog = someFunction(new Dog(), new Cat()); 

Hooray!

Теперь с ограниченными дженериков, они могут ссылаться друг на друга, чтобы определить границы отношений они имеют друг с другом:

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!* 
Смежные вопросы