dispatchEvent KeyboardEvent类型问题

时间:2018-10-30 18:55:14

标签: angular typescript jasmine

我在尝试在Angular单元测试中对本机元素上的退格键按下触发keyup事件时遇到问题。

如果我尝试:

combineReducers()

我收到TypeError:

debugElement.nativeElement.dispatchEvent(new KeyboardEvent('keyup', {code: 'Backspace'}));

我在编辑器(VSCode)中没有收到任何错误,并且如果我遵循类型定义(到DOM API类型文件),那么KeyboardEvent的构造函数为:

TypeError: KeyboardEventConstructor is not a constructor (evaluating 'new KeyboardEvent('keyup', { code: 'Backspace' })')

第二个arg采用如下定义的接口:

new(typeArg: string, eventInitDict?: KeyboardEventInit): KeyboardEvent;

我不确定这里哪里出问题了,有人可以帮忙吗?

谢谢

1 个答案:

答案 0 :(得分:0)

(假设您正在使用ng-cli转堆)似乎工作正常,这是一个stackblitz

由于键入错误,它可能是lib.dom.d.ts的不兼容版本,或者您在错误地编译/编译TS时以某种方式进行了设置。

(以下建议可能会导致与Angular的版本不兼容)

首先尝试使用

更新输入内容
  

npm安装typescript @ latest

或简单地检查您的package.json“ typescript”:“〜2.7.2”,它使用的是最新版本并根据您的Angular版本进行了配置。