首页 > 解决方案 > 在 SyntheticEvent 目标上访问 currentTime

问题描述

在香草反应中,你会currentTime得到

(e) => e.target.currentTime

在 typescript ^3.1.6 中执行上述操作会导致

“EventTarget”类型上不存在属性“currentTime”

SyntheticEvent似乎没有在EventTarget任何地方列出,所以我不知道如何获取currentTime. Typescript lib 显示它已经定义,我的 tsconfig (通过这个 fork生成)看起来像

"compilerOptions": {
  "lib": ["es6", "dom"]
}

部门:

"devDependencies": {
  "@types/react-router": "^4.4.0",
  "@types/react-router-dom": "^4.3.1",
  "@types/jest": "^23.3.9",
  "@types/node": "^10.12.2",
  "@types/react": "^16.4.18",
  "@types/react-dom": "^16.0.9",
  "typescript": "^3.1.6"
}

标签: javascriptreactjstypescriptdefinitelytyped

解决方案


在这里找到了答案

您需要做的是将目标转换为具有您需要的属性的特定元素类型。

所以要让currentTime你需要做

(e: React.SyntheticEvent): void => {
  const { currentTime } : { currentTime: number } = e.target as HTMLMediaElement;
}

推荐阅读