Estou trabalhando na atualização de algum código TypeScript antigo para usar a versão mais recente do compilador e estou tendo problemas com uma chamada para setTimeout
. O código espera chamar a setTimeout
função do navegador que retorna um número:
setTimeout(handler: (...args: any[]) => void, timeout: number): number;
No entanto, o compilador está resolvendo isso para a implementação do nó, que retorna um NodeJS.Timer:
setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
Este código não é executado no nó, mas as tipificações do nó estão sendo puxadas como uma dependência de outra coisa (não tenho certeza do que).
Como posso instruir o compilador a escolher a versão setTimeout
que desejo?
Aqui está o código em questão:
let n: number;
n = setTimeout(function () { /* snip */ }, 500);
Isso produz o erro do compilador:
TS2322: O tipo 'Timer' não pode ser atribuído ao tipo 'número'.