Estoy trabajando para actualizar un código TypeScript antiguo para usar la última versión del compilador y tengo problemas con una llamada a setTimeout
. El código espera llamar a la setTimeout
función del navegador que devuelve un número:
setTimeout(handler: (...args: any[]) => void, timeout: number): number;
Sin embargo, el compilador está resolviendo esto en la implementación del nodo, que devuelve un NodeJS.Timer:
setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
Este código no se ejecuta en el nodo, pero los tipos de nodos se incorporan como una dependencia de otra cosa (no estoy seguro de qué).
¿Cómo puedo indicarle al compilador que elija la versión setTimeout
que quiero?
Aquí está el código en cuestión:
let n: number;
n = setTimeout(function () { /* snip */ }, 500);
Esto produce el error del compilador:
TS2322: El tipo 'Temporizador' no se puede asignar al tipo 'número'.