Avatar ·

TypeScript: Wie man setTimeout richtig verwendet (window vs Node.js)?

Hallo zusammen! Ich habe gerade angefangen, TypeScript zu lernen, und bin auf ein unverständliches Problem bei der Verwendung von `setTimeout` gestoßen. Ich schreibe einen einfachen Timer für eine Webanwendung, aber TypeScript meckert wegen der Typen. Hier ist mein Code: ```typescript const timerId = setTimeout(() => { console.log("3 Sekunden sind vergangen"); }, 3000); clearTimeout(timerId); ``` TypeScript gibt einen Fehler aus: "Argument of type 'number' is not assignable to parameter of type 'Timeout'". Ich bin verwirrt. In JavaScript hat `setTimeout` immer eine Zahl (numerische Timer-ID) zurückgegeben, und ich habe sie problemlos an `clearTimeout` übergeben. Warum funktioniert das in TypeScript nicht? Ich habe gegoogelt und herausgefunden, dass es zwei verschiedene `setTimeout` gibt: einen für den Browser (window.setTimeout) und einen für Node.js (global.setTimeout). Sie geben unterschiedliche Typen zurück: im Browser ist es