View debounce.ts
export const MissingReturnValue = Symbol('MissingReturnValue') | |
export function debounce<Fn extends (...args: any[]) => any>( | |
fn: Fn, | |
ms: number | |
): (...args: Parameters<Fn>) => ReturnType<Fn> | typeof MissingReturnValue { | |
let debouncing = false | |
let lastReturnedValue: | |
| typeof MissingReturnValue | |
| ReturnType<Fn> = MissingReturnValue |