TypeScript – welcher Typ ist setInterval

Lesezeit: 3 Minuten

Benutzeravatar von gfels
gfels

Wenn ich einer Variablen einen Typ zuweisen möchte, der später ein setInterval wie folgt zugewiesen wird:

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

Welcher Typ sollte dieser Variablen zugewiesen werden.autosaveInterval?

  • öffentliches autoSaveInterval :number;

    – Arash

    17. Juli 2018 um 8:28 Uhr

  • Sie müssen keinen Typ angeben; autoSaveInterval leitet seinen Typ aus dem Rückgabewert von ab setInterval Anruf. In Browserplattformen ist dies numberaber in node.js ist es ein Timer

    – Explosionspillen

    17. Juli 2018 um 8:33 Uhr

  • Verwandtes Github-Problem: github.com/microsoft/TypeScript/issues/842

    – V. Rubinetti

    24. Februar 2022 um 1:53 Uhr

Zu spät zur Party, aber der beste Typ (besonders da der Typ undurchsichtig ist, kümmern wir uns nur darum, dass wir ihn weitergeben können clearInterval() später) könnte die automatisch abgeleitete sein, dh. so etwas wie:

ReturnType<typeof setInterval>

  • Mann, das hätte definitiv als die richtige Antwort ausgewählt werden sollen. “number” funktioniert nicht, besonders in eckig

    – Akin_Glen

    19. Mai 2020 um 5:17 Uhr

  • Ich trete der Party bei, Nummer hat bei mir auch nicht funktioniert, danke!!

    – Itay

    1. September 2020 um 8:42 Uhr

  • Die sauberste Art, das Problem zu lösen, und funktioniert in allen Umgebungen

    – Christoph Marois

    15. Januar 2021 um 17:00 Uhr

  • Wow, wusste nichts über ReturnType. Das ist riesig!

    – ICW

    9. August 2021 um 19:07 Uhr

Der Typ hängt davon ab, welche Funktion Sie verwenden werden. Es gibt 2 Überladungen, der Rückgabetyp ist in einem roten Begrenzungsrahmen markiert:

Geben Sie hier die Bildbeschreibung ein

Um diejenige zu verwenden, die eine Nummer zurückgibt, verwenden Sie bitte:

window.setInterval(...)

  • Könnten Sie die Website oder das Buch, auf das Sie diese Referenz erhalten haben, teilen? Danke.

    – RiverTwilight

    31. Januar 2021 um 13:53 Uhr

  • Hallo, dies ist kein Buch, das Sie finden können, wenn Sie mit Visual Studio arbeiten und nach Implementierung suchen.

    – Stav Bodik

    31. Januar 2021 um 15:39 Uhr

  • In der Browserumgebung sollte es so sein window.setInterval und der Rückgabetyp ist die Zahl, wie sie ist.

    – Sohn Tr.

    27. Dezember 2022 um 2:06 Uhr

Benutzeravatar von user3003238
Benutzer3003238

Der Typ ist Zahl;

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

  • @gfels Weil setInterval das zurückgibt, was den ID-Wert des eingestellten Timers darstellt. Sie können diesen Wert mit der Methode clearInterval() verwenden, um den Timer abzubrechen. Es ist keine Funktion, weil Sie ihr keinen Funktionshandler zuweisen, Sie weisen ihr den Ergebnis-/Rückgabewert einer Funktion zu.

    – Benutzer3003238

    17. Juli 2018 um 8:39 Uhr


  • Wenn Sie TypeScript verwenden und Compilerfehler erhalten, weil irgendwie der NodeJS.Timer-Typ abgeleitet wird: Wechseln Sie zu window.setInterval, um anzugeben, dass Sie node nicht verwenden, und der DOM-Typ sollte verwendet werden, was in der Tat eine Zahl ist.

    – Michahell

    22. Juni 2021 um 13:37 Uhr

  • Es ist keine Nummer in node.js

    – Jason Zhou

    5. Juli 2021 um 5:17 Uhr

Benutzeravatar von AngularBoy
Eckiger Junge

Ich glaube, dass NodeJS.Timeout und widow.setInterval eine Zahl sind:

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

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

Ashs Benutzeravatar
Asche

Verwenden Sie den typeof-Operator, um den Datentyp einer beliebigen Variablen wie folgt zu finden:

typeof ist ein unärer Operator, der einem einzelnen Operanden vorangestellt wird, der einen beliebigen Typ haben kann. Sein Wert ist eine Zeichenfolge, die den Typ des Operanden angibt.

var variable1 = "Hello";
var autoSaveInterval;

this.autoSaveInterval = setInterval(function(){
      if(this.car.id){
        this.save();
      }
      else{
        this.create();
      }
    }.bind(this), 50000);
    
console.log("1st: " + typeof(variable1))
console.log("2nd: " + typeof(autoSaveInterval ))

  • Dies hilft nicht bei Typescript-Definitionen

    – Romanpetit

    22. Juni 2021 um 13:25 Uhr

  • Dies enthält keinen Verweis auf die ursprüngliche Frage zu TypeScript-Typen

    – Kendall

    9. Februar 2022 um 1:39 Uhr

  • Dies hilft nicht bei Typescript-Definitionen

    – Romanpetit

    22. Juni 2021 um 13:25 Uhr

  • Dies enthält keinen Verweis auf die ursprüngliche Frage zu TypeScript-Typen

    – Kendall

    9. Februar 2022 um 1:39 Uhr

1438900cookie-checkTypeScript – welcher Typ ist setInterval

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy