打字稿 - 高阶函数类型

时间:2012-11-06 00:29:45

标签: javascript functional-programming typescript higher-order-functions

我对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 个答案:

答案 0 :(得分:33)

这两个都有效

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

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

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