简体   繁体   English

打字稿 - 高阶函数类型

[英]Typescript - Higher order function types

I'm getting really excited about TypeScript. 我对TypeScript感到非常兴奋。 How do you set the type of a function parameter? 如何设置函数参数的类型?

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

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

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

How can I type calculateANumber better? 如何更好地输入calculateANumber I'd like to specify that it must be a function that takes a number and returns a number. 我想指定它必须是一个带数字的函数并返回一个数字。

Can I then make an "interface" or some shorthand for that type so I can make my higher order function signatures more readable? 然后,我可以为该类型创建一个“界面”或一些简写,这样我可以使我的高阶函数签名更具可读性吗?

These both work 这两个都有效

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

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM