在我的Angular单元测试中,我在尝试为本机元素上的退格键按下触发keyup事件时遇到了问题。
如果我尝试:
debugElement.nativeElement.dispatchEvent(new KeyboardEvent('keyup', {code: 'Backspace'}));我得到了一个TypeError:
TypeError: KeyboardEventConstructor is not a constructor (evaluating 'new KeyboardEvent('keyup', { code: 'Backspace' })')我的编辑器(VSCode)中没有任何错误,如果我按照类型定义执行(到DOM类型文件),则KeyboardEvent的构造函数是:
new(typeArg: string, eventInitDict?: KeyboardEventInit): KeyboardEvent;第二个arg采用如下定义的接口:
interface KeyboardEventInit extends EventModifierInit {
code?: string;
key?: string;
location?: number;
repeat?: boolean;
}我不确定我在哪里出错了,有人能帮我吗?
谢谢
发布于 2018-11-01 17:40:42
(假设您使用的是ng-cli代码转换)似乎工作得很好,下面是一个stackblitz
由于它的类型错误,它可能是一个不兼容的lib.dom.d.ts版本,或者您在编译/转译TS时以某种方式进行了设置。
(以下建议可能会出现与Angular的版本不兼容)
首先尝试使用任何一种方法更新类型
最新npm安装类型脚本@
或者简单地检查您的package.json "typescript":"~2.7.2“是否使用最新版本,并根据您的Angular版本进行配置。
https://stackoverflow.com/questions/53071115
复制相似问题