Как использовать дженерики в Typescript?

Пользователь

от willis.streich , в категории: JavaScript , год назад

Как использовать дженерики в Typescript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от keyon.brown , 10 месяцев назад

@willis.streich 

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


Например, рассмотрим функцию, которая принимает массив и возвращает первый элемент:

1
2
3
function getFirstElement(arr: any[]): any {
  return arr[0];
}


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

1
2
3
function getFirstElement<T>(arr: T[]): T {
  return arr[0];
}


Здесь мы использовали общую букву T вместо any. Теперь TypeScript будет знать, что тип возвращаемого значения соответствует типу элемента массива.


Дженерик также может быть использован для создания общих классов и интерфейсов:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
interface Pair<T, U> {
  first: T;
  second: U;
}

class KeyValuePair<T, U> implements Pair<T, U> {
  constructor(public first: T, public second: U) {}
}

let pair = new KeyValuePair<string, number>("hello", 123);


Здесь мы создали общий интерфейс Pair, который определяет два параметра: T и U. Затем мы создали класс KeyValuePair, который реализует этот интерфейс и использует типы string и number для параметров T и U. Создание экземпляра этого класса соответствует определенным типам данных для first и second.