@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?
  • Вопрос задан
  • 823 просмотра
Решения вопроса 1
Xuxicheta
@Xuxicheta
инженер
offset и singleSlider должны быть нормально типизированы.
offset хотя бы как keyof HTMLElement, но вообще лучше конкретно перечень возможных значений.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы