18

Ich bin wirklich begeistert von TypeScript. Wie legen Sie den Typ eines Funktionsparameters fest?Typescript - Funktionstypen höherer Ordnung

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

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

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

Wie kann ich calculateANumber besser eingeben? Ich möchte angeben, dass es eine Funktion sein muss, die eine Zahl nimmt und eine Zahl zurückgibt.

Kann ich dann eine "Schnittstelle" oder eine Kurzschrift für diesen Typ erstellen, damit ich meine Signaturen höherer Ordnung besser lesbar machen kann?

Antwort

25

Diese beiden Arbeiten

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

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

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

Sie müssen nicht den Rückgabetyp für die 'twoMoreThanYou' Funktion mit der' NumberFunction' Schnittstelle angeben. Tipp Inferenz! – asawyer

+4

OMG Ich liebe Typoskript bereits. –

Verwandte Themen