Javascript Typescript-高阶函数类型

Javascript Typescript-高阶函数类型,javascript,functional-programming,typescript,higher-order-functions,Javascript,Functional Programming,Typescript,Higher Order Functions,我对打字脚本感到非常兴奋。如何设置函数参数的类型 function twoMoreThanYou(calculateANumber: Function):number { return calculateANumber(4) + 2; } function double(n:number):number { return n*2; } console.log("TWO MORE", twoMoreThanYou(double)) 如何才能更好地键入calculateANum

我对打字脚本感到非常兴奋。如何设置函数参数的类型

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

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

console.log("TWO MORE", twoMoreThanYou(double))
如何才能更好地键入
calculateANumber
?我想指定它必须是一个接受数字并返回数字的函数

然后我可以为该类型创建一个“接口”或一些速记,以便使我的高阶函数签名更具可读性吗?

这两种方法都有效

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

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

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

您不必使用
NumberFunction
接口为
two函数指定返回类型。类型推断!