Я работаю над обновлением старого кода TypeScript для использования последней версии компилятора, и у меня возникают проблемы с вызовом setTimeout
. Код ожидает вызова функции setTimeout
браузера, которая возвращает число:
setTimeout(handler: (...args: any[]) => void, timeout: number): number;
Однако компилятор вместо этого решает это для реализации узла, который возвращает NodeJS.Timer:
setTimeout(callback: (...args: any[]) => void, ms: number,...args: any[]): NodeJS.Timer;
Этот код не запускается в узле, но типизация узлов втягивается в зависимость от чего-то еще (не уверен, что).
Как я могу дать указание компилятору выбрать версию setTimeout
которую я хочу?
Вот код, о котором идет речь:
let n: number;
n = setTimeout(function () { /* snip */ }, 500);
Это приводит к ошибке компилятора:
TS2322: Тип "Таймер" не присваивается типу "номер".