Дженерики в TypeScript
Дженерики, или Generic Types, — обобщенные типы. Они нужны для описания похожих, но отличающихся какими-то характеристиками типов. Мы описываем общую структуру, а конкретную уже определяет пользователь дженерика. Дженерик — это каркас, внутренности которого заполняет разработчик. Программист, который описывает обобщенный тип, никогда не знает, что именно туда решит записать тот, кто будет этот тип использовать.
Посмотрим на пример использования дженериков в TypeScript. Представьте, что у нас есть массив значков валют. В JavaScript мы бы просто написали:
const currencySigns = ['₽', '€', '£'];
В TypeScript с помощью дженериков можно написать:
type CurrencySign = '₽' | '€' | '£';
const currencySigns: ReadonlyArray<CurrencySign> = ['₽', '€', '£'];
Здесь важно уделить внимание типу переменной currencySigns — ReadonlyArray, обобщенный тип, означает «неизменяемый массив», при этом мы говорим языку, что в нем могут лежать только элементы типа CurrencySign, это параметр дженерика.
Ничто не запрещает написать ReadonlyArray<'₽' | '€' | '£'>, но часто типы разделяют, чтобы в будущем их было удобно использовать отдельно друг от друга. Например, как в данном случае, было бы удобно заранее иметь тип элемента массива и уже из него сконструировать другой тип, двигаясь «от меньшего к большему», а не выделять из большего типа меньший
C помощью дженериков можно создавать типы и интерфейсы, типизировать функции, методы, классы.
👉 @seniorFront