1
在下面的代碼片斷中,我已經聲明瞭一個IMath接口,並在add方法中實現,它的工作原理非常好。爲什麼在TypeScript的界面代碼下執行?
但是,在乘法中,它應該給出編譯錯誤,因爲我只傳遞一個參數,第二個參數不是可選的。
interface IMath {
(a: number, b: number): number;
}
// using the interface
var add: IMath;
add = function (a: number, b: number) {
return a + b;
}
var sum = add(5, 3);
alert(sum);
var multiply: IMath;
multiply = function (c: number) {
return c;
}
var result = multiply(5, 3);
alert(result);
但我沒有在Visual Studio中出現任何編譯錯誤,有任何猜測?
這也在說明http://www.typescriptlang.org/Handbook#type-compatibility-comparing-two-functions –
好像我知道了。我想這與JavaScript的工作方式有關,即使帶有兩個參數的函數僅用一個參數調用,JavaScript也是最好的猜測,並且用第二個參數調用函數是未定義的。在C#等其他編程語言中也可能不可能。 –
謝謝一噸戳,剛剛更新我的職位提到上述信息 - http://techfunda.com/howto/1071/interfaces-in-typescript –