From 1237ee6c2c1f44aa6dfd0c81fad7e622cb773c5c Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Fri, 28 Aug 2020 14:05:20 +0800 Subject: [PATCH] types: fix event listener typing --- src/composition/use-lock-scroll.ts | 8 ++++---- src/composition/use-touch.ts | 14 +++++++------- src/utils/dom/event.ts | 10 ++++++---- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/composition/use-lock-scroll.ts b/src/composition/use-lock-scroll.ts index 9783b2090..41d2da242 100644 --- a/src/composition/use-lock-scroll.ts +++ b/src/composition/use-lock-scroll.ts @@ -8,7 +8,7 @@ const CLASSNAME = 'van-overflow-hidden'; export function useLockScroll(element: HTMLElement) { const { start, move, deltaY, direction } = useTouch(); - function onTouchMove(event: TouchEvent) { + const onTouchMove = ((event: TouchEvent) => { move(event); if (direction.value !== 'vertical') { @@ -29,9 +29,9 @@ export function useLockScroll(element: HTMLElement) { if (prevent) { preventDefault(event, true); } - } + }) as EventListener; - function lock() { + const lock = () => { if (!count) { document.body.classList.add(CLASSNAME); } @@ -39,7 +39,7 @@ export function useLockScroll(element: HTMLElement) { count++; on(document, 'touchstart', start); on(document, 'touchmove', onTouchMove); - } + }; lock(); diff --git a/src/composition/use-touch.ts b/src/composition/use-touch.ts index e79d98986..7d37889d0 100644 --- a/src/composition/use-touch.ts +++ b/src/composition/use-touch.ts @@ -23,21 +23,21 @@ export function useTouch() { const offsetY = ref(0); const direction = ref(''); - function reset() { - direction.value = ''; + const reset = () => { deltaX.value = 0; deltaY.value = 0; offsetX.value = 0; offsetY.value = 0; - } + direction.value = ''; + }; - function start(event: TouchEvent) { + const start = ((event: TouchEvent) => { reset(); startX.value = event.touches[0].clientX; startY.value = event.touches[0].clientY; - } + }) as EventListener; - function move(event: TouchEvent) { + const move = ((event: TouchEvent) => { const touch = event.touches[0]; deltaX.value = touch.clientX - startX.value; deltaY.value = touch.clientY - startY.value; @@ -47,7 +47,7 @@ export function useTouch() { if (!direction.value) { direction.value = getDirection(offsetX.value, offsetY.value); } - } + }) as EventListener; return { move, diff --git a/src/utils/dom/event.ts b/src/utils/dom/event.ts index 073df3899..baaf9de3e 100644 --- a/src/utils/dom/event.ts +++ b/src/utils/dom/event.ts @@ -1,7 +1,5 @@ import { inBrowser } from '..'; -type EventHandler = (event: Event) => void; - // eslint-disable-next-line import/no-mutable-exports export let supportsPassive = false; @@ -23,7 +21,7 @@ if (inBrowser) { export function on( target: EventTarget, event: string, - handler: EventHandler, + handler: EventListenerOrEventListenerObject, passive = false ) { if (inBrowser) { @@ -35,7 +33,11 @@ export function on( } } -export function off(target: EventTarget, event: string, handler: EventHandler) { +export function off( + target: EventTarget, + event: string, + handler: EventListenerOrEventListenerObject +) { if (inBrowser) { target.removeEventListener(event, handler); }