Búsqueda de sitios web

javascript - Typescript - Tipos de funciones de orden superior


Me estoy emocionando mucho con TypeScript. ¿Cómo se establece el tipo de un parámetro de función?

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

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

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

¿Cómo puedo escribir calculateANumber mejor? Me gustaría especificar que debe ser una función que tome un número y devuelva un número.

¿Puedo entonces crear una "interfaz" o algún tipo de abreviatura para ese tipo para que pueda hacer que las firmas de mis funciones de orden superior sean más legibles?

Respuesta #1

Ambos funcionan

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

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

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

Artículos relacionados