在Typescript中实现没有名称的函数

Alp*_*age 6 typescript typescript1.5

我正在尝试实现一个没有这样名字的函数:

interface I {
    (name: string): void;    
}

class C implements I {
    (name: string):void { }
}
Run Code Online (Sandbox Code Playgroud)

我想像这样使用C,但它不起作用:

C("test");
Run Code Online (Sandbox Code Playgroud)

我可以用javascript编写它并使用接口声明:I("test");

但我想在Typescript中做同样的事情.

Dav*_*ret 10

你不能在课上做到这一点,但你可以使用常规功能:

interface I {
    (name: string): void;
}

var C: I = function(name: string) {

};

C("test"); // ok
C(1);      // compile error
Run Code Online (Sandbox Code Playgroud)

然后,如果更改界面,将通过编译错误通知您更改C功能.