addEventListener shortcut

addEventListener shortcut functions

type EventHandlerParameters<T extends Window | Document | HTMLElement> = Parameters<T["addEventListener"]>;
export function on<T extends Window | Document | HTMLElement>(
  target: T,
  eventName: EventHandlerParameters<T>[0],
  handler: EventHandlerParameters<T>[1],
) {
  target.addEventListener(eventName, handler);
}

export function off<T extends Window | Document | HTMLElement>(
  target: T,
  eventName: EventHandlerParameters<T>[0],
  handler: EventHandlerParameters<T>[1],
) {
  target.removeEventListener(eventName, handler);
}

// window.addEventListener('click', () => {console.log("click")})

// is equivalent to

// on(window, 'click', () => {console.log("click")})