Bil*_*ill 8 typescript reactjs
处理定时器时正确的类型是什么?我曾尝试Timeout
和number
let debounceResize: any;
// ^ What should this be?
window.addEventListener('resize', () => {
clearTimeout(debounceResize);
debounceResize = setTimeout(calcCanvasSize, 500);
});
Run Code Online (Sandbox Code Playgroud)
hoa*_*gdv 14
对于这种情况,我会给你两个选择:
debounceResize
为返回类型setTimeout
,使用ReturnType
原生泛型。let debounceResize: ReturnType<typeof setTimeout>;
Run Code Online (Sandbox Code Playgroud)
window.setTimeout
而不仅仅是setTimeout
。window.setTimeout
返回一个数字。let debounceResize: number;
debounceResize = window.setTimeout(() => {}, 1000);
Run Code Online (Sandbox Code Playgroud)
在 Web 浏览器应用程序中,setTimeout
返回一个number
.
此设置需要DOM
库(或等效项)。
在 NodeJS应用程序中,setTimeout
返回一个NodeJS.Timeout
.
npm install @types/node --save-dev`.
Run Code Online (Sandbox Code Playgroud)