18

TypeScriptについて本当に興奮しています。どのように関数パラメータの型を設定しますか?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の入力方法は?私はそれが数値を取り、数値を返す関数でなければならないと指定したいと思います。

私は高次関数の署名をより読みやすくするために、そのタイプの「インタフェース」またはいくつかの省略形を作成できますか?

答えて

25

これらの両方の仕事

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

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

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

あなたは 'NumberFunction'インターフェイスを持つ' twoMoreThanYou'機能のための戻り値の型を指定する必要はありません。タイプ推論! – asawyer

+4

OMG私はすでにタイスクリプトが大好きです。 –