【问题标题】:Typescript - Higher order function typesTypescript - 高阶函数类型
【发布时间】:2012-10-25 21:52:33
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    这两个都有效

    interface NumberFunction extends Function {
        (n:number):number;
    }
    
    function twoMoreThanYou(calculateANumber: (n:number)=>number):number {
        ...
    }
    
    function twoMoreThanYou(calculateANumber: NumberFunction):number {
        ...
    }
    

    【讨论】:

    • 您不必使用NumberFunction 接口指定twoMoreThanYou 函数的返回类型。类型推断!
    猜你喜欢
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    • 2019-07-01
    • 2020-02-16
    • 2013-01-16
    相关资源
    最近更新 更多