File: index.d.ts

package info (click to toggle)
node-debounce 2.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 100 kB
  • sloc: javascript: 399; makefile: 7
file content (31 lines) | stat: -rw-r--r-- 1,127 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
type AnyFunction = (...arguments_: readonly any[]) => unknown;

/**
Creates a debounced function that delays execution until `wait` milliseconds have passed since its last invocation.

Set the `immediate` option to `true` to execute the function immediately at the start of the `wait` interval, preventing issues such as double-clicks on a button.

The returned function has the following methods:

- `.isPending` indicates whether the debounce delay is currently active.
- `.clear()` cancels any scheduled executions.
- `.flush()` if an execution is scheduled then it will be immediately executed and the timer will be cleared.
- `.trigger()` executes the function immediately and clears the timer if it was previously set.
*/
declare function debounce<F extends AnyFunction>(
	function_: F,
	wait?: number,
	options?: {immediate: boolean}
): debounce.DebouncedFunction<F>;

declare namespace debounce {
	type DebouncedFunction<F extends AnyFunction> = {
		(...arguments_: Parameters<F>): ReturnType<F> | undefined;
		readonly isPending: boolean;
		clear(): void;
		flush(): void;
		trigger(): void;
	};
}

export = debounce;