types - 定义 TypeScript 回调类型

标签 types callback typescript

我在 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 提供任何类型吗?现在,公共(public)字段 myCallback 的类型为 any,如上所示。如何定义回调的方法签名?或者我可以将类型设置为某种回调类型吗?或者我可以做这些吗?我是否必须使用 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;

关于types - 定义 TypeScript 回调类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13137350/

相关文章:

sql-server - 我应该使用什么 SQL Server 数据类型来存储字节[]

javascript - Node : invoking callback function inside a for loop

javascript - 现代浏览器中的 TypeScript 支持

javascript - 避免在 typescript 中添加字符串和数字?

c++ - 为什么快速整数类型比其他整数类型快?

javascript - 直接调用方法和使用 '.call' 方法的区别? JS

c++ - 以优雅礼貌的方式在 C++ 中处理 GTK 回调

TypeScript 编译器变慢了?

typescript - 函数式 TypeScript 和泛型

javascript - 为什么 Javascript 仅对已分配的字符串进行字符串连接的类型转换?