Задать вопрос
@Paxest
Freecodecamp camper :)

Какой тип должен быть у переменной, которая передается как ключ для доступа к значению, находящимуся в HTMLElement?

Добрый день!
Оптимизирую повторяющийся код, написал функцию.

const move = (direction: string, offset: string) => {

      if (this.sliderType === 'single') {

        this.elem.querySelectorAll('.iss__tooltip')[0].style[direction] = `${this.singleSlider[offset]}px`;
      }
}

move('left', 'offsetLeft');


Typescript ругается, что вот такthis.singleSlider[offset] нельзя обращаться к значению в HTMLElement потому что ключа с типом string в элементе нет

Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'HTMLElement'.
No index signature with a parameter of type 'string' was found on type 'HTMLElement'.


Если поставить для offset: any, то
Element implicitly has an 'any' type because expression of type 'any' can't be used to index type 'HTMLElement'.ts(7053)


Подскажите, пожалуйста, какой тип задать для offset чтобы грамотно обратиться к значению внутри HTMLElement?
  • Вопрос задан
  • 866 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Merion Academy
    Онлайн-курс по TypeScript
    2 месяца
    Далее
  • Skillbox
    Курс по TypeScript
    3 месяца
    Далее
  • Учебный центр IBS
    WEB-015 Язык программирования TypeScript
    1 неделя
    Далее
Решения вопроса 1
Xuxicheta
@Xuxicheta
инженер
offset и singleSlider должны быть нормально типизированы.
offset хотя бы как keyof HTMLElement, но вообще лучше конкретно перечень возможных значений.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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