Eu achei a ideia de separar funções utilitárias em uma pasta separada de onde elas podem ser importadas muito boa, como no caso da função que calcula o tempo em segundos utilizada pelo Cronômetro
.
Eu tentei fazer isso com a função regressiva
, mas não consegui.
Como ela chama a setTempo
e a finalizarTarefa
pegando elas do escopo externo, eu precisaria passar essas funções como parâmetros da função regressiva
se eu a separar em outro arquivo, mas a tipagem do TypeScript ficou dando erro.
O código que eu tentei fazer foi esse:
interface Params {
contador: number,
finalizarTarefa: () => void,
setTempo: (tempo: number) => void
}
export function regressiva({ contador = 0, finalizarTarefa, setTempo }: Params) {
if(contador === 0) finalizarTarefa();
setTimeout(() => {
if(contador > 0) {
setTempo(contador - 1);
return regressiva(contador - 1, finalizarTarefa, setTempo);
// o erro está acontecendo nesta linha
}
}, 1000)
}