首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将dataset应用于event.target时,类型'EventTarget‘上不存在属性'dataset’

将dataset应用于event.target时,类型'EventTarget‘上不存在属性'dataset’
EN

Stack Overflow用户
提问于 2021-05-20 08:31:10
回答 1查看 317关注 0票数 1

如何让TypeScript对此错误感到满意:

代码语言:javascript
运行
复制
Property 'dataset' does not exist on type 'EventTarget'

当我尝试实现以下代码片段时,我得到了它:

代码语言:javascript
运行
复制
document.addEventListener(
  "click",
  (event) => {
    event.preventDefault();
    if (event !== null && event.target !== null) {
      const element = event.target as Element;
      if (element.matches(".dropdown-item.city")) {
        const cityName = event.target.dataset.value;
        console.log("City =", cityName);
        dropdown.classList.toggle("active");
      }
    }
  },
  false
);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-20 08:46:51

与断言类型相比,一种选择是检查条件中的元素是否为正确的类型。在这种情况下,我相信您希望确保它是一个instanceof HTMLElement

代码语言:javascript
运行
复制
document.addEventListener(
  "click",
  (event) => {
    event.preventDefault();
    if (event !== null && event.target instanceof HTMLElement) {
      const element = event.target;
      if (element.matches(".dropdown-item.city")) {
        const cityName = element.dataset.value;
        console.log("City =", cityName);
        dropdown.classList.toggle("active");
      }
    }
  },
  false
);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67612502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档