En son derleyici sürümünü kullanmak için bazı eski TypeScript kodunu yükseltmeye çalışıyorum ve bir çağrı ile sorun yaşıyorum setTimeout
. Kod, tarayıcının setTimeout
bir sayı döndüren işlevini çağırmayı bekler :
setTimeout(handler: (...args: any[]) => void, timeout: number): number;
Ancak, derleyici bunu bir NodeJS.Timer döndüren düğüm uygulamasına çözüyor:
setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
Bu kod düğümde çalışmaz, ancak düğüm türleri başka bir şeye bağımlılık olarak çekilir (ne olduğundan emin değil).
Derleyiciye setTimeout
istediğim sürümü seçmesi için nasıl talimat verebilirim ?
İşte söz konusu kod:
let n: number;
n = setTimeout(function () { /* snip */ }, 500);
Bu, derleyici hatasını oluşturur:
TS2322: "Zamanlayıcı" türü, "sayı" türüne atanamaz.