适用于浏览器和节点环境的ReturnType <typeof setInterval>的初始值

时间:2020-08-23 02:29:17

标签: node.js typescript vue.js

我有一个需要保存的时间间隔,我想知道如果类型为intervalTimer,如何为ReturnType<typeof setInterval>设置初始值

  interface Data {
    intervalTimer: ReturnType<typeof setInterval>
}

var data : Data = {
    intervalTimer: "initial value????",
}

function start(){
    data.intervalTimer = setInterval(()=>console.log('PING'), 3000)
}

这在Node和Browser上都应该起作用。两者都返回不同的值。 因此,简单地将intervalTimer设置为0会导致错误Type 'Timeout' is not assignable to type 'number'

1 个答案:

答案 0 :(得分:0)

可能有一个更优雅的方法,但是一个选择是设置一个不运行任何操作的初始超时,以确保intervalTimer的初始值是预期的类型,而与环境无关:

interface Data {
    intervalTimer: ReturnType<typeof setTimeout>
}
const data: Data = {
    intervalTimer: setTimeout(() => void 0),
}