Я работаю над обновлением некоторого старого кода 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: Тип «Таймер» не может быть назначен типу «Число».