Je suis en train de travailler sur la mise à niveau de certains vieux Tapuscrit code à utiliser la dernière version de compilateur, et j'ai de la difficulté avec un appel à l' setTimeout
. Le code devrait appeler le navigateur setTimeout
fonction qui retourne un nombre:
setTimeout(handler: (...args: any[]) => void, timeout: number): number;
Cependant, le compilateur est la résolution de cette le nœud de mise en place, qui renvoie un NodeJS.Timer:
setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
Ce code n'est pas exécuté dans le nœud, mais le nœud typings obtenez tiré comme une dépendance à quelque chose d'autre (je ne sais pas quoi).
Comment puis-je demander au compilateur de choisir la version de l' setTimeout
que je veux?
Voici le code en question:
let n: number;
n = setTimeout(function () { /* snip */ }, 500);
Ce qui produit l'erreur du compilateur:
TS2322: Type de Minuterie n'est pas cessible de type "nombre".