提问者:小点点

Typescript-高阶函数类型


我对打字稿非常兴奋。如何设置函数参数的类型?

function twoMoreThanYou(calculateANumber: Function):number {
    return calculateANumber(4) + 2;
}

function double(n:number):number {
    return n*2;
}

console.log("TWO MORE", twoMoreThanYou(double))

我怎样才能更好地输入calculateANumber?我想指定它必须是一个接受数字并返回数字的函数。

然后我能为这种类型做一个“接口”或一些简写,这样我就能让我的高阶函数签名更具可读性吗?


共1个答案

匿名用户

这两种方法都有效

interface NumberFunction extends Function {
    (n:number):number;
}

function twoMoreThanYou(calculateANumber: (n:number)=>number):number {
    ...
}

function twoMoreThanYou(calculateANumber: NumberFunction):number {
    ...
}