2015-05-29 71 views
1

我需要實現一個d.ts文件的以下(簡化)打字稿接口實現接口:打字稿:帶靜電/匿名函數

interface SomeLibrary { 
    someProperty: SomePropertyClass; 
    someMethod(); 
    (someParam: string): SomeClass; // don't know hot to implement this 
} 

如何實現在自己的類此接口?特別是未命名的方法是有問題的。這些方法如何被調用?

+0

這是https://stackoverflow.com/questions/16508435/implementing-typescript-interface-with-bare-的DUP函數簽名加其他字段 –

回答

2

您在TypeScript中的類無法滿足您所顯示的界面。

這樣的接口通常被創建來描述使用不同模式的庫。

的如何可以滿足該接口的一個示例如下所示:

var example: SomeLibrary = <any> function(someParam: string) { 
    console.log('function called'); 
    return new SomeClass(); 
} 
example.someProperty = new SomePropertyClass(); 
example.someMethod = function() { console.log('method called'); }; 

var x = example('x'); 
var y = example.someProperty; 
var z = example.someMethod(); 
+0

本例中的''是什麼意思? – Waog

+0

該表達式中的函數實際上並不滿足該接口(因爲缺少'someProperty'和'someMethod'成員)。出於這個原因,你需要擺動類型來告訴編譯器*我知道這種類型可以,即使它看起來不像你*。如果您忘記添加接下來的兩行代碼,您會導致運行時問題! – Fenton

+0

這是任何類型的演員? – Waog