gpt4 book ai didi

javascript - 如何在 TypeScript 中模拟一个 'mousemove' 事件并指定 movementX 和 movementY

转载 作者:行者123 更新时间:2023-11-30 19:35:11 26 4
gpt4 key购买 nike

我正在尝试为 TypeScript 中的“mousemove”处理程序编写 Jasmine 测试。这是我的测试:

    it('should pan', () =>
{
let mouseMoveEvent: MouseEvent = new MouseEvent("mousemove", { movementX: 1, movementY: 2 });
canvas.nativeElement.dispatchEvent(mouseMoveEvent);
fixture.detectChanges();

expect(component.canvasManager.viewportOrigin.X).toBe(1, "expected pan on X");
expect(component.canvasManager.viewportOrigin.Y).toBe(2, "expected pan on Y");

});

测试工作/通过但存在编译错误:

ERROR in src/app/components/biq-workflow-editor/tests/biq-workflow-editor.component.canvas-manager.spec.ts(63,76): error TS2345: Argument of type '{ movementX: number; movementY: number; }' is not assignable to parameter of type 'MouseEventInit'.
Object literal may only specify known properties, and 'movementX' does not exist in type 'MouseEventInit'.

我知道即使出现编译错误,TypeScript 编译器也会生成 JavaScript 代码。

我应该如何在 TypeScript 中编写 'mousemove' 事件模拟才不会出现任何编译错误?

最佳答案

你的代码对我来说是有效的。但是,我能够重现同样的问题。我能够通过将第二个参数转换为 MouseEventInit 来解决它对象。

let mouseMoveEvent: MouseEvent = new MouseEvent("mousemove", <MouseEventInit>{ movementX: 1, movementY: 2 });

关于javascript - 如何在 TypeScript 中模拟一个 'mousemove' 事件并指定 movementX 和 movementY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56012411/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com