Typescript: как проверить tagName в eventTarget?
почему в данном случае:
var ele = <HTMLDivElement>document.getElementById("toolbar");
ele.addEventListener("click", function (e) {
if (e.target.tagName === "SPAN") { console.log(e.target.tagName) } }, false);
Visual Studio показывает мне эту ошибку?
Build: оператор '= = = 'не может быть применен к типам 'HTMLElement' и "струна".
свойство "tagName" не существует для типа "EventTarget".
когда я запускаю скрипт работает нормально.
Как правильно писать?
спасибо.
3 ответов
Я бы изменить код следующим образом:
var ele = <HTMLDivElement>document.getElementById("toolbar");
ele.addEventListener("click", (ev: MouseEvent) => {
var element = ev.target as HTMLElement;
if (element.tagName === "SPAN") {
console.log(element.tagName)
}
}, false);
кастинг событие свойства target
to HTMLElement
даст нам все правильные свойства базового элемент.
Регистрация его в детская площадка
два равных знака сравнивают значения между (int == 'string') типами (т. е. 19=='19') С true.
3 равных знака при сравнении значений и типов. Таким образом, вы сравниваете строковый тип с типом HTML. Таким образом повторив ложь. Если вы хотите сравнить элемент tagname со строкой, используйте два равных знака
в Angular если свойство tagName дает ошибку на цели, попробуйте использовать ниже code
event.target['tagName']