小编典典

定义 TypeScript 回调类型

all

我在 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(隐式/显式)吗?

我尝试过这样的事情,但它不起作用(编译时错误):

public myCallback: ();
// or:
public myCallback: function;

我在网上找不到任何解释,所以我希望你能帮助我。


阅读 60

收藏
2022-06-11

共1个答案

小编典典

我刚刚在 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;
2022-06-11