23

我对 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更好地打字?我想指定它必须是一个接受数字并返回数字的函数。

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

4

1 回答 1

39

这两个都有效

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

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

function twoMoreThanYou(calculateANumber: NumberFunction):number {
    ...
}
于 2012-11-06T00:34:43.280 回答