Каков правильный тип при работе с таймерами? Я пытался Timeout и number

  let debounceResize: any;
//                     ^ What should this be?
  window.addEventListener('resize', () => {
    clearTimeout(debounceResize);
    debounceResize = setTimeout(calcCanvasSize, 500);
  });

enter image description here enter image description here enter image description here

3
Bill 16 Фев 2020 в 08:50

2 ответа

Лучший ответ

Для этого случая я дам вам 2 варианта:

  1. Определите тип debounceResize в качестве возвращаемого типа setTimeout, используйте ReturnType родовой обобщенный тип.
let debounceResize: ReturnType<typeof setTimeout>;
  1. Используйте window.setTimeout вместо только setTimeout. window.setTimeout возвращает число.
let debounceResize: number;

debounceResize = window.setTimeout(() => {}, 1000);
4
hoangdv 16 Фев 2020 в 10:58

В приложении веб-браузера { {X0}} возвращает number.

Для этой настройки требуется библиотека DOM (или эквивалентная).

enter image description here

В приложении NodeJS setTimeout возвращает {{X1} } }.

Эта настройка требует npm install @types/node --save-dev.

enter image description here

3
Shaun Luttin 16 Фев 2020 в 22:34