Что такое дженерики (generics) в TypeScript и как они используются?
@justice
Дженерики в TypeScript позволяют создавать обобщенные типы данных и функции, которые могут использоваться с различными типами, не указывая конкретный тип заранее. Они позволяют создавать более универсальный и гибкий код.
Для использования дженериков в TypeScript используется параметр типа, который указывается в угловых скобках. Например:
1 2 3 4 5 6 |
function reverse<T>(items: T[]): T[] {
return items.reverse();
}
const array: number[] = [1, 2, 3, 4, 5];
const reversedArray = reverse(array); // [5, 4, 3, 2, 1]
|
В этом примере функция reverse принимает параметр типа T, который указывает тип элементов массива items. Затем мы можем использовать эту функцию с различными типами, например, с массивом чисел или строк.
Дженерики также могут использоваться в интерфейсах и классах. Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
interface Stack<T> {
push(item: T): void;
pop(): T | undefined;
}
class MyStack<T> implements Stack<T> {
private items: T[] = [];
push(item: T): void {
this.items.push(item);
}
pop(): T | undefined {
return this.items.pop();
}
}
const stack = new MyStack<number>();
stack.push(1);
stack.push(2);
stack.push(3);
console.log(stack.pop()); // 3
|
В этом примере мы создаем интерфейс Stack, который определяет методы добавления и удаления элементов из стека. Затем мы создаем класс MyStack, который реализует этот интерфейс с помощью параметра типа T. Мы создаем экземпляр этого класса с параметром типа number и добавляем в него несколько элементов.
Дженерики могут существенно повысить гибкость кода и сделать его более универсальным. Они позволяют писать более чистый и понятный код и избавляться от повторяющихся конструкций.