Как на TS объявить функцию которая возвращает результат выполнения функции из аргумента?

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

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

type Func<T, R> = (arg: T) => R;

Здесь T - тип аргумента функции, R - тип возвращаемого значения функции.

Затем вы можете объявить функцию, которая принимает такой тип в качестве аргумента и возвращает результат выполнения этой функции:

function executeFunction<T, R>(func: Func<T, R>, arg: T): R {
  return func(arg);
}

Здесь func - функция, которая передается в качестве аргумента, arg - аргумент, передаваемый в эту функцию.

Теперь вы можете вызвать функцию executeFunction и передать в нее функцию в качестве аргумента:

function multiplyByTwo(num: number): number {
  return num * 2;
}

const result = executeFunction(multiplyByTwo, 5);
console.log(result); // Выведет 10

В этом примере функция multiplyByTwo принимает число, умножает его на 2 и возвращает результат. Затем мы вызываем executeFunction передавая multiplyByTwo в качестве аргумента и число 5. Результат выполнения функции multiplyByTwo будет сохранен в переменной result и затем выведен на консоль. В этом случае будет выведено число 10.

Таким образом, вы можете объявить функцию на TypeScript, которая возвращает результат выполнения функции из аргумента.