Hur använder jag anpassade händelser i TypeScript?


Hur använder jag anpassade händelser i TypeScript?

I jQuery gör jag så här:

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

och någon annanstans 'lyssnar' jag efter den händelsen

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

            // do stuff...

        });

Jag flyttar nu min kod till TypeScript - jag har en referens till jQuery-typdefinitionfilen men $.event.trigger känns inte igen..

Tack

Svar #1

Du kan behöva utöka jQuery-gränssnittet. Mitt exempel har allt i en fil, men det behöver inte vara i samma fil - bara en som du refererar till.

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

interface JQueryStatic {
    event: JQueryEvent;
}

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

Svar #2

Faktiskt har trigger() flera signaturer.

Kolla http://api.jquery.com/trigger/

För mig fungerar detta bättre eftersom jag behöver skicka lite data med händelsen:

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

interface JQueryStatic {
    event: JQueryEvent;
}