2015-05-29 104 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