2016-03-09 32 views
2

如果我定義一個接口爲這樣如何使一個函數尊重的接口,打字稿

interface IMyFn { 
    (a: number, b: number) : number 
} 

的功能,我知道我可以創建一個變量/常量實現該功能,a和b將有正確的類型。

const fn1: IMyFn = (a, b) => { 
    return a + b; 
} 

但是我怎樣才能聲明一個函數必須實現接口?

// declare fn2: IMyFn??? 
function fn2 (a, b) { 
    return a + b; 
} 

在這種情況下,a和b沒有輸入。

我知道我能做到這一點:

function fn2 (a:number, b:number) : number { 
    return a + b; 
} 

如果我通過FN2周圍的類型匹配。但是輸入函數的想法不必重複接口信息。

回答

0

對於一個普通的功能,可以使用通過接口類型的變量:

var example: IMyFn = function(a, b) { 
    return a + b; 
} 
+0

是的,這就是我說的第二個代碼。那個說const fn1的人。我想知道如何聲明一個函數實現接口,而不是一個變量是函數的類型。 –