如何在TypeScript中使用自定义事件?

如何在TypeScript中使用自定义事件?,typescript,Typescript,如何在TypeScript中使用自定义事件 在jQuery中,我执行以下操作: $("#btnShowExplorer").click(function () { $.event.trigger("showexplorerpf"); }); 而在别的地方,我“倾听”着那件事 // bind to the special custom event $('#idExplorerWindow').bind("showexplor

如何在TypeScript中使用自定义事件

在jQuery中,我执行以下操作:

$("#btnShowExplorer").click(function () {
            $.event.trigger("showexplorerpf");
        });
而在别的地方,我“倾听”着那件事

        // bind to the special custom event
        $('#idExplorerWindow').bind("showexplorerpf", function () {

            // do stuff...

        });
我现在将代码移动到TypeScript-我有一个对jQuery类型的引用,但无法识别$.event.trigger


谢谢

您可能需要扩展jQuery接口。我的示例将所有内容都放在一个文件中,但不必放在同一个文件中,只需引用一个文件即可

interface JQueryEvent {
    trigger(name: string): void;
}

interface JQueryStatic {
    event: JQueryEvent;
}

$("#btnShowExplorer").click(function () {
    $.event.trigger("showexplorerpf");
});

您可能需要扩展jQuery接口。我的示例将所有内容都放在一个文件中,但不必放在同一个文件中,只需引用一个文件即可

interface JQueryEvent {
    trigger(name: string): void;
}

interface JQueryStatic {
    event: JQueryEvent;
}

$("#btnShowExplorer").click(function () {
    $.event.trigger("showexplorerpf");
});
实际上,trigger()有多个签名

检查

对我来说,这更有效,因为我需要发送一些带有事件的数据:

interface JQueryEvent {
    trigger(name: string, data:any[]): void;
}

interface JQueryStatic {
    event: JQueryEvent;
}
实际上,trigger()有多个签名

检查

对我来说,这更有效,因为我需要发送一些带有事件的数据:

interface JQueryEvent {
    trigger(name: string, data:any[]): void;
}

interface JQueryStatic {
    event: JQueryEvent;
}

它添加了类型信息,以便TypeScript了解jQuery的功能。它们称为类型定义。因此,可以使用此方法扩展TypeScript提供的静态检查,以覆盖普通JavaScript。更好的是,如果您发现正在使用的JQuery类型定义不支持JQuery所做的某些事情,请修复它,然后向DefiniteTyped提交拉取请求:。(您使用的是DefinitelyTyped定义,对吗?)DefinitelyTyped是我流程的第1步和第5步:它添加类型信息,以便TypeScript了解jQuery的功能。它们称为类型定义。因此,可以使用此方法扩展TypeScript提供的静态检查,以覆盖普通JavaScript。更好的是,如果您发现正在使用的JQuery类型定义不支持JQuery所做的某些事情,请修复它,然后向DefiniteTyped提交拉取请求:。(您正在使用DefinitelyTyped定义,对吗?)DefinitelyTyped是我流程的第1步和第5步: