diff --git a/packages/core/src/hooks/useDebounce/debounce.ts b/packages/core/src/hooks/useDebounce/debounce.ts index 417f483c..8263c211 100644 --- a/packages/core/src/hooks/useDebounce/debounce.ts +++ b/packages/core/src/hooks/useDebounce/debounce.ts @@ -1,6 +1,6 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ // Simplified version of https://github.com/toss/es-toolkit/blob/main/src/function/debounce.ts +// eslint-disable-next-line @typescript-eslint/no-explicit-any -- generic function constraint requires `any[]` due to parameter contravariance export type DebouncedFunction void> = { (...args: Parameters): void; cancel: () => void; @@ -17,12 +17,13 @@ type DebounceOptions = { edges?: Array<'leading' | 'trailing'>; }; +// eslint-disable-next-line @typescript-eslint/no-explicit-any -- generic function constraint requires `any[]` due to parameter contravariance export function debounce void>( func: F, debounceMs: number, { edges = ['leading', 'trailing'] }: DebounceOptions = {} ): DebouncedFunction { - let pendingThis: any = undefined; + let pendingThis: ThisParameterType | undefined = undefined; let pendingArgs: Parameters | null = null; const leading = edges != null && edges.includes('leading'); @@ -71,7 +72,7 @@ export function debounce void>( pendingArgs = null; }; - const debounced = function (this: any, ...args: Parameters) { + const debounced = function (this: ThisParameterType, ...args: Parameters) { // eslint-disable-next-line @typescript-eslint/no-this-alias pendingThis = this; pendingArgs = args;