我在 TypeScript 中有以下类:
class CallbackTest { public myCallback; public doWork(): void { //doing some work... this.myCallback(); //calling callback } }
我正在使用这样的类:
var test = new CallbackTest(); test.myCallback = () => alert("done"); test.doWork();
该代码有效,因此它按预期显示一个消息框。
我的问题是:我可以为我的类字段提供任何类型myCallback吗?现在,公共字段myCallback的类型any如上所示。如何定义回调的方法签名?或者我可以将类型设置为某种回调类型吗?或者我可以做这些吗?我必须使用any(隐式/显式)吗?
myCallback
any
我尝试过这样的事情,但它不起作用(编译时错误):
public myCallback: (); // or: public myCallback: function;
我在网上找不到任何解释,所以我希望你能帮助我。
我刚刚在 TypeScript 语言规范中找到了一些东西,它相当简单。我非常接近。
语法如下:
public myCallback: (name: type) => returntype;
在我的示例中,它将是
class CallbackTest { public myCallback: () => void; public doWork(): void { //doing some work... this.myCallback(); //calling callback } }
作为类型别名:
type MyCallback = (name: type) => returntype;