Продвинутый Typescript
Теория: Дженерики на классах
Дженерик-классы, как и дженерик функции, позволяют создавать классы, которые могут работать с разными типами данных. Например, класс Triple может хранить три значения любого типа. В этом случае вместо того, чтобы создавать классы для каждого типа, можно создать обобщенный класс, который будет работать с любым типом данных.
В этом примере класс Triple — дженерик-класс, в который мы можем поместить любые типы данных. При этом у нас остаются гарантии безопасности и вывод типов, которые мы получили при использовании обобщенных функций:
Также можно наследоваться от обобщенных классов. Например, класс Pair может быть наследником класса Triple, который хранит два значения любого типа:
Здесь мы использовали приведение к типу never, чтобы пометить третий параметр как отсутствующий.
Как и обычные классы, обобщенные классы также можно использовать в качестве типов параметров функций:
Дженерик-классы полезны, когда нам нужно создать какой-нибудь контейнер для хранения данных, как в примере с классом Pair. Array, Map, Set — это дженерик-классы, которые хранят элементы заданного типа.





