错误TS2304:找不到名称“ InputEvent”

Zen*_*hen 7 typescript typescript-typings angular

TypeScript中所述,是否具有InputEvent的类型定义?,我试图用@types/dom-inputevent,以获得InputEvent我的角7项目。但error TS2304: Cannot find name 'InputEvent'无论何时使用,它都会显示出来。

是否需要在Angular项目中“注册”它还是一个bug?

如果一个修复程序不可用,我只想要一个方便的方式来达到同样的结果event.dataInputEvent

谢谢!

Dan*_* C. 7

我在尝试在 Angular 6 应用程序的单元测试中使用 @types/dom-inputevent 时遇到了同样的问题。就我而言,原因是我的 tsconfig.spec.js 中有一个明确的“类型”条目,如下所述。

tsconfig.json(不相关部分省略)

{
  "compilerOptions": {
     "typeRoots": [
       "node_modules/@types"
     ]
  }
}
Run Code Online (Sandbox Code Playgroud)

tsconfig.spec.js(不相关部分省略)

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
  "types": [
    "jasmine",
    "node"
  ]
}
Run Code Online (Sandbox Code Playgroud)

如您所见,有一个types条目列出了应在编译期间可用的显式类型。这会覆盖typeRoots父 tsconfig.json 中的设置,因此在编译我的单元测试时只有 @types/jasmine 和 @types/node 可用。另请参见此处:https : //www.typescriptlang.org/docs/handbook/tsconfig-json.html#types-typeroots-and-types

解决方案是添加dom-inputeventtypes列表中,例如

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
  "types": [
    "jasmine",
    "node",
    "dom-inputevent"
  ]
}
Run Code Online (Sandbox Code Playgroud)

另一种方法是完全删除类型条目。如果我这样做了,typeRoots就会开始寻找 node_modules/@types 下的所有类型,因此也包括在内@types/dom-inputevent