Я працюю над оновленням старого коду 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: Тип "Таймер" не можна призначити типу "номер".