По TypeScript — дженерики, юнионы, утилитарные типы — всё использовал? Расскажи про дженерики, для чего использовал.
Answer from AI
sobes.tech AI
Дженерики в TypeScript позволяют создавать компоненты и функции, которые работают с разными типами данных, сохраняя при этом типовую безопасность. Это особенно полезно для написания переиспользуемого кода, например, универсальных функций или компонентов.
Пример использования дженериков — функция, которая возвращает элемент массива по индексу, при этом тип возвращаемого значения совпадает с типом элементов массива:
function getElement<T>(arr: T[], index: number): T {
return arr[index];
}
const numbers = [1, 2, 3];
const num = getElement(numbers, 1); // тип num — number
const strings = ['a', 'b', 'c'];
const str = getElement(strings, 0); // тип str — string
Юнионы (объединения типов) позволяют переменной принимать несколько типов, например string | number. Это удобно, когда функция может работать с разными типами входных данных.
Утилитарные типы — это встроенные типы TypeScript, которые помогают трансформировать другие типы, например Partial<T>, Readonly<T>, Pick<T, K> и др. Они упрощают работу с типами и делают код более выразительным.