2017-11-10 2 views
0

現在、Typescriptコード内でJQueryを使用するプロジェクトに取り組んでいます。私がやろうとしていることの1つは、JQuery要素に添付されたマウスイベントをラッパークラスに渡すことです。以下のコード例を参照してください。強力な型指定を維持しながら、Typescriptでマウスイベントを処理します。

import * as $ from 'jquery' 

export class Test { 
    ele: JQuery; 
    constructor() { 
    this.ele = $('<div>Hello World</div>'); 
    this.ele.mousedown((evt) => { this.my_mousedown(evt); }); 
    } 

    my_mousedown(evt: MouseEvent) { 
    console.log(evt); 
    } 
} 

私は見ています問題は、渡されたEVTが間違ったタイプであることである:my_mousedown(Event<HTMLElement | null>とget:

Argument of type Event<HTMLElement | null> is not assignable to parameter of type 'MouseEvent' 

だから、私は、その後にmy_mousedown変更しようとしました

Event is not generic. 

最後に、私は(生のイベントタイプに)jQueryのコールで、元のイベントにEVTを変換したが、その後EVTはマウス固有のコール(EG-のいずれかを持っていません。のエラー)をご利用いただけます。思考?

答えて

1

JQueryからロードされた別個のイベントインターフェイスがあることが分かります。私が仕事をする方法は、JQuery.Eventにイベントタイプを割り当てることでした。すなわち:

import * as $ from 'jquery' 

export class Test { 
    ele: JQuery; 

    constructor() { 
    this.ele = $('<div>Hello World</div>'); 
    this.ele.mousedown((evt) => { this.my_mousedown(evt); }); 
    } 

    my_mousedown(evt: JQuery.Event) { 
    console.log(evt); 
    } 
} 
関連する問題