interface JQuery
{
    addEventListener(type:string, selector?:any, data?:any, handler?:(eventObject:JQueryEventObject) => any, scope?:any): JQuery;
    addEventListener(type:string, selector?:any, handler?:(eventObject:JQueryEventObject) => any, scope?:any): JQuery;

    removeEventListener(type?:string, selector?:any, handler?:(eventObject:JQueryEventObject) => any, scope?:any): JQuery;
    removeEventListener(type?:string, handler?:(eventObject:JQueryEventObject) => any, scope?:any): JQuery;
}
interface JQuery
{
    addEventListener(type:string, selector?:any, data?:any, handler?:(eventObject:JQueryEventObject) => any, scope?:any): JQuery;
    addEventListener(type:string, selector?:any, handler?:(eventObject:JQueryEventObject) => any, scope?:any): JQuery;

    removeEventListener(type?:string, selector?:any, data?:any, handler?:(eventObject:JQueryEventObject) => any, scope?:any): JQuery;
    removeEventListener(type?:string, selector?:any, handler?:(eventObject:JQueryEventObject) => any, scope?:any): JQuery;
    removeEventListener(type?:string, handler?:(eventObject:JQueryEventObject) => any, scope?:any): JQuery;
}

Allow removeEventListener to be more flexible
Allow removeEventListener to be more flexible