Throttle tipado en TypeScript
Throttle con la firma de la función envuelta preservada.
function throttle<A extends unknown[]>(
fn: (...args: A) => void,
limit: number,
): (...args: A) => void {
let ready = true;
return (...args: A) => {
if (!ready) return;
ready = false;
fn(...args);
setTimeout(() => {
ready = true;
}, limit);
};
}
Palabras clave y builtins usados aquí
Aextendsfunctionifletnumberreturn
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 246
- Tokens
- 82
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 47 segundos.
Paso 3 de 5 en Tiempo y memoria; paso 16 de 19 en Clases y patrones.