我想使用相同的变量来存储setInterval()
的返回值,然后将其作为参数传递给TypeScript中的clearInterval()
。但是,setInterval()
返回NodeJS.Timer
,而clearInterval()
取number
。
这就是我希望代码看起来的样子:
itemCooldownInterval: NodeJS.Timer | undefined;
this.itemCooldownInterval = setInterval(this.tickCooldown, 1000);
这就是我想要清除间隔的方式:
clearInterval(this.itemCooldownInterval);
浏览器和Node.js中setInterval的返回值不同。你在哪个平台上开发?
在浏览器上,返回类型为number
。您的IDE可能会说一些不同的话,然后只使用window.setInterval
。
itemCooldownInterval: number | undefined;
// this will work
this.itemCooldownInterval = window.setInterval(this.tickCooldown, 1000);
无论哪种方式,您都可以使用ReturnType
来推断匹配类型:
itemCooldownInterval: ReturnType<typeof setInterval> | undefined;