处理计时器时正确的类型是什么?我已经尝试过Timeout
和number
let debounceResize: any;
// ^ What should this be?
window.addEventListener('resize', () => {
clearTimeout(debounceResize);
debounceResize = setTimeout(calcCanvasSize, 500);
});
答案 0 :(得分:8)
在这种情况下,我将给您两个选择:
debounceResize
的类型定义为setTimeout
的返回类型,使用ReturnType
本机泛型。let debounceResize: ReturnType<typeof setTimeout>;
window.setTimeout
而不是setTimeout
。 window.setTimeout
返回一个数字。let debounceResize: number;
debounceResize = window.setTimeout(() => {}, 1000);
答案 1 :(得分:4)
在Web浏览器应用中,setTimeout
returns a number
。
此设置需要startAbsenceBtn.translatesAutoresizingMaskIntoConstraints = false
库(或等效库)。
在NodeJS 应用中,setTimeout
returns a NodeJS.Timeout
。
此设置需要DOM
。
答案 2 :(得分:-1)
更新答案。现在可以使用了。
state.obj = { ...state.obj, newProp: 123 }