gfels
Si me gustaría asignar un tipo a una variable a la que luego se le asignará un setInterval así:
this.autoSaveInterval = setInterval(function(){
if(this.car.id){
this.save();
}
else{
this.create();
}
}.bind(this), 50000);
¿Qué tipo debe asignarse a esta variable.autosaveInterval?
Tarde a la fiesta, pero el mejor tipo (sobre todo porque el tipo es opaco, solo nos importa que podamos pasárselo a clearInterval()
más tarde) podría ser el deducido automáticamente, es decir. algo como:
ReturnType<typeof setInterval>
-
Hombre, esto definitivamente debería haber sido elegido como la respuesta correcta. “número” no funciona, especialmente en angular
– Akin_Glen
19 de mayo de 2020 a las 5:17
-
Me uno a la fiesta, el numero tampoco me funciono, gracias!!
– Itay
1 de septiembre de 2020 a las 8:42
-
La forma más limpia de resolver el problema y funciona en todos los entornos.
– Christophe Marois
15/01/2021 a las 17:00
-
Wow, no sabía sobre ReturnType. ¡Eso es enorme!
– ICW
9 de agosto de 2021 a las 19:07
El tipo depende de la función que vaya a usar, hay 2 sobrecargas, el tipo de retorno está marcado en un cuadro delimitador rojo:
Para usar el que devuelve el número, use:
window.setInterval(...)
-
¿Podría compartir el sitio web o el libro que obtuvo esta referencia? Gracias.
– Río Crepúsculo
31 de enero de 2021 a las 13:53
-
Hola, este no es un libro, puede encontrarlo si trabaja con Visual Studio y busca la implementación.
– Stav Bodik
31 de enero de 2021 a las 15:39
usuario3003238
El tipo es número;
private autoSaveInterval: number = setInterval(() => {
console.log('123');
}, 5000);
-
@gfels Porque setInterval devuelve lo que representa el valor de ID del temporizador que está configurado. Puede usar este valor con el método clearInterval() para cancelar el temporizador. No es una función porque no le está asignando el controlador de función, le está asignando el resultado/valor de retorno de una función.
– usuario3003238
17 de julio de 2018 a las 8:39
-
Si está usando TypeScript y obtiene errores del compilador porque de alguna manera se infiere el tipo NodeJS.Timer: cambie a window.setInterval para especificar que no está usando el nodo y se debe usar el tipo DOM, que de hecho es un número.
– Michael Trow
22 de junio de 2021 a las 13:37
-
No es número en node.js
– Jason Zhou
5 de julio de 2021 a las 5:17
chico angular
Creo que su NodeJS.Timeout y Widow.setInterval es el número:
const nodeInterval: NodeJS.Timeout = setInterval(() => {
// do something
}, 1000);
const windowInterval: number = window.setInterval(() => {
// do something
}, 1000);
Ceniza
Use el operador typeof para encontrar el tipo de datos de cualquier variable como esta:
typeof es un operador unario que se coloca antes de un solo operando que puede ser de cualquier tipo. Su valor es una cadena que especifica el tipo de operando.
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 ))
-
Esto no está ayudando con las definiciones de TypeScript
– Romainpetit
22 de junio de 2021 a las 13:25
-
Esto no contiene ninguna referencia a la pregunta original con respecto a los tipos de TypeScript
– Kendall
9 de febrero a las 1:39
-
Esto no está ayudando con las definiciones de TypeScript
– Romainpetit
22 de junio de 2021 a las 13:25
-
Esto no contiene ninguna referencia a la pregunta original con respecto a los tipos de TypeScript
– Kendall
9 de febrero a las 1:39
intervalo de guardado automático público: número;
– Arash
17 de julio de 2018 a las 8:28
No necesita especificar un tipo;
autoSaveInterval
inferirá su tipo a partir del valor de retorno de lasetInterval
llamar. En plataformas de navegador esto esnumber
pero en node.js es un temporizador– Pastillas de explosión
17 de julio de 2018 a las 8:33
Problema de github relacionado: github.com/microsoft/TypeScript/issues/842
– V. Rubinetti
24 de febrero a las 1:53
¿Qué significa Fe?
– Teófilo
el dia de ayer