Как типизировать параметр функции дженериком?

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

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

function myFunction<T>(param: T): void {
  // тело функции
}

Здесь T - это дженерик параметр, который может быть заменен на конкретный тип данных при вызове функции. Вы можете использовать T внутри тела функции для работы с параметром:

function myFunction<T>(param: T): void {
  console.log(param); // выводим параметр на консоль
}

Теперь, при вызове функции myFunction, вы можете передать любой тип данных.

myFunction<number>(10); // выводит 10
myFunction<string>('Hello'); // выводит 'Hello'

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

Также, в TypeScript существует возможность указывать ограничения на дженерик параметры. Это позволяет ограничить использование только определенных типов. Например, если вы хотите, чтобы дженерик параметр был только числового типа, вы можете использовать extends:

function myFunction<T extends number>(param: T): void {
  console.log(param); // выводим параметр на консоль
}

Теперь, T может быть только числом или его подтипом:

myFunction<number>(10); // выводит 10
myFunction<string>('Hello'); // ошибка компиляции

В этом примере, вызов функции с дженериком, указывающим на неправильный тип, будет вызывать ошибку компиляции.

Надеюсь, этот ответ помог вам лучше понять, как типизировать параметры функции дженериками в TypeScript. Если у вас возникли еще вопросы, не стесняйтесь задавать их!