@IliaMal

TypeScript ругается на getAttribute('href'). Как получить href ссылки?

Здравствуйте.

На проекте переносим javascript на typescript для строгой типизации.

Столкнулся с проблемой, что не могу получить href ссылки:
const popupLink = this.popupLinks[index] as HTMLAnchorElement;
                popupLink.addEventListener("click", (e: Event) => {

                    const popupName = e.getAttribute('href').replace('#', '')!;
                
                });

Ругается, что getAttribute не существует в типе Event, попробовал вызвать через e.target, ошибка меняется на "не существует в типе EventTarget".

Как решить проблему?
  • Вопрос задан
  • 270 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега TypeScript
Тлен
Ради ускорения сборки из коробки не предусмотрено сложной типизации событий. Одно время события имели сложную типизацию на дженериках, но оную вкинули из ts. (Что весьма меня расстраивает, могли бы и оставить как отдельную настройку, для тех кому плавная типизация важнее скорости.)

Тебе остаётся только кастовать типы руками, увы. Причём рекомендую в данном случае использовать currentTarget а не target, потому что target может оказаться например span внутри этой ссылки, а не она сама.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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