В TypeScript вы можете сделать метод generic, добавив параметр типа перед аргументами метода, используя угловые скобки <>
. Это позволяет вам использовать различные типы данных при вызове метода, делая его более гибким и переиспользуемым.
Пример:
function printArray<T>(arr: T[]): void { for (const item of arr) { console.log(item); } }
В этом примере printArray
- это generic метод, который принимает массив arr
с элементами типа T
. Буква T
- это переменная типа, которую мы определили перед указанием аргументов метода.
Теперь мы можем вызывать этот метод с различными типами данных. Например:
const stringArray: string[] = ["apple", "banana", "cherry"]; printArray<string>(stringArray); const numberArray: number[] = [1, 2, 3, 4, 5]; printArray<number>(numberArray);
Если мы хотим явно указать тип данных, мы можем использовать угловые скобки и передать соответствующий тип. В примере выше мы явно указали тип string
и number
для массивов строк и чисел соответственно.
Однако в большинстве случаев TypeScript может самостоятельно вывести тип данных при вызове generic метода, на основе переданных аргументов. Таким образом, вызовы метода в предыдущем примере могут быть упрощены:
printArray(stringArray); // TypeScript выводит, что это массив строк printArray(numberArray); // TypeScript выводит, что это массив чисел
Это основы использования generic методов в TypeScript. Они позволяют создавать более гибкий и переиспользуемый код, который может работать со множеством различных типов данных.