let timer: ReturnType<typeof setTimeout> = setTimeout(() => { ... });
clearTimeout(timer);
By using ReturnType<fn>
you are getting independence from platform. You won’t be forced to use neither any
nor window.setTimeout
which will break if you run the code on nodeJS server (eg. server-side rendered page).
Good news, this is also compatible with Deno!