创建一个函数,该函数接受一个函数,并返回与TypeScript中给定函数相同的参数和返回类型的另一个函数

时间:2019-08-10 12:18:15

标签: typescript functional-programming typescript-generics

我想在TypeScript的另一个函数中通用地“包装”函数。这是我要执行的操作的一个简单示例:


function wrap(f: Function){
  console.log("You called a function!");
  // return function with same signature as f
}

function hello(name: string){
  return "Hello " + name;
}

function add(n1: number, n2: number){
  return n1 + n2;
}

const wrappedHello = wrap(sayHello);
const wrappedAdd = wrap(add);

console.log(wrappedHello("Jim")); 
// Outputs:
// You called a function!
// Hello Jim

console.log(wrappedAdd(1, 2)); 
// Outputs:
// You called a function!
// 3

如何定义wrap函数,以便它维护参数并为传递给它的任何函数返回类型?

0 个答案:

没有答案