javascript - TypeScript - quel type est setInterval


Si je veux attribuer un type à une variable qui sera plus tard assignée à un setInterval comme suit :

this.autoSaveInterval = setInterval(function(){
      if(this.car.id){
        this.save();
      }
      else{
        this.create();
      }
    }.bind(this), 50000);

Quel type devrait être attribué à la variable this.autosaveInterval ?

Réponse #1

En retard à la fête, mais le meilleur type (surtout puisque le type est opaque, nous nous soucions seulement de pouvoir le passer à clearInterval() plus tard) pourrait être celui déduit automatiquement, c’est-à-dire quelque chose comme :

ReturnType<typeof setInterval>

Réponse #2

Le type dépend de la fonction que vous allez utiliser, il y a 2 surcharges, le type de retour est indiqué dans le cadre rouge :

Pour utiliser celui qui retourne un nombre, veuillez utiliser :

window.setInterval(...)

Réponse #3

Le type est nombre;

private autoSaveInterval: number = setInterval(() => {
  console.log('123');
}, 5000);

Réponse #4

Je crois que c'est NodeJS.Timeout et que window.setInterval est un nombre :

const nodeInterval: NodeJS.Timeout = setInterval(() => {
  // do something
}, 1000);

const windowInterval: number = window.setInterval(() => {
  // do something
}, 1000);