Typescript - 高阶函数类型

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

那么我可以创建一个"接口"或缩写来表示这种类型,以使我的高阶函数签名更易读吗?

1个回答

39

这两个都有效

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

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

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

7
使用NumberFunction 接口定义 twoMoreThanYou 函数时,不需要指定返回类型。这是类型推断的作用! - asawyer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接