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

Есть функция обёртка, которая например, добавляет логи перед и после выполнения функции и возвращает результат её выполнения.
Как правильно описать типы чтобы IDE выводили подсказки?
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега TypeScript
Crazy on performance...
function logDecorator<R, Args extends unknown[], This = void>(
    f: (this: This, ...args: Args) => R
): (this: This, ...args: Args) => R {
    return function(...args) {
        console.log(f.name, this, args);
        const result = f.apply(this, args);
        console.log(f.name, result);
        return result;
    }
}


https://www.typescriptlang.org/play?#code/GYVwdgxg...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы