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

Implement function without name in Typescript

我正在尝试实现一个没有名称的函数,如下所示:

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

class C implements I {
    (name: string):void { }
}

我想这样用C,但是不行:

C("test");

我可以写在javascript里面,使用接口声明:I("test");

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

类 TypeScript 中不能有调用签名。

您不能在 类 上执行此操作,但可以使用常规函数执行此操作:

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

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

};

C("test"); // ok
C(1);      // compile error

然后,如果您更改界面,您将收到编译错误通知以更改 C 函数。