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
  • Вопрос задан
  • 348 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега TypeScript
Тлен
Если не используете Node.js то просто исключите типы для неё из конфига TS.
Тогда у вас setTimeout будет возвращать простой number, а clearTimeout будет принимать number | undefined. И никаких проблем.)

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

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

Похожие вопросы