描述: 在TS中使用 setTimeout 函数,不知道该定义什么类型,经过我的摸索得出两种定义的方式,写一篇文章记录一下
第一种
这种使用方式,常见的错误就是,报 NodeJS 找不到,而报错
let timeout: NodeJS.Timeout
clearTimeout(timeout)
timeout = setTimeout(() => {
cb(results)
}, 3000)
解决方案
- 安装
npm i @types/node
- 然后配置
.eslintrc.cjs
globals: {
NodeJS: 'readonly'
}
- 保存就可以了
第二种
第二种是最简单,便捷的方式,但是既然写 TS,个人觉得最好还是第一种好,仅个人意见,以上。
let timeout: number
clearTimeout(timeout)
timeout = window.setTimeout(() => {
cb(results)
}, 3000)
解决方案
- 定义成
number
类型 - 然后
setTimeout
使用window来调用