Задать вопрос
Natebash
@Natebash
React, Vue, Angular, Navite JS, Python / Node JS

Как правильно затипизировать данный кусок кода?

const [showTooltip, setShowTooltip] = useState<boolean>(false); // показывает тултип если true

  const timer = useRef<ReturnType<typeof setTimeout>>();

  const handleMouseEnter = () => {
    timer.current = setTimeout(() => {
      setShowTooltip(true);
    }, 500);
  };

  const handleMouseLeave = () => {
    clearTimeout(timer.current as NodeJS.Timeout);
    setShowTooltip(false);
  };


clearTimeout(timer.current as NodeJS.Timeout); - смущает данная строчка. Вопрос, как правильно типизируются такие вещи?
current - число
time при отсутствии эффекта наведения - undefined
  • Вопрос задан
  • 417 просмотров
Подписаться 1 Средний 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Javascript.ru
    Курс по React
    5 недель
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
Aetae
@Aetae Куратор тега TypeScript
Тлен
Если не используете Node.js то просто исключите типы для неё из конфига TS.
Тогда у вас setTimeout будет возвращать простой number, а clearTimeout будет принимать number | undefined. И никаких проблем.)

Если же код ноды по каким-то причинам у вас идёт вперемешку со фронтовым кодом, то для фронтовых таймеров можете писать явно window.setTimeout и window.clearTimeout.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽