我即将使用当前Typedefinitions更新到Typescript上的jQuery 3。
编译代码时
const event:JQuery.Event<HTMLElement, null> = $.Event("keydown");
event.which = 77;
event.ctrlKey = true;
$(window).trigger(event);
我收到以下错误
TS2540: Cannot assign to 'ctrlKey' because it is a constant or a read-only property.
我该如何解决这个问题?这对于jQuery 2来说没有问题,无论我在哪里看到它都是使用set ctrlKey触发事件的推荐方法。
解决此编译器错误的唯一方法是将其重写为
event["ctrl" + "Key"] = true;
但这感觉太过于hacky :)我正在寻找一个顺利的解决方案。
答案 0 :(得分:0)
以下内容从@types/jquery@3.3.13
(由DefinitelyTyped/DefinitelyTyped#29520修订)开始生效。
const ev: JQuery.Event<Window> = $.Event("keydown");
ev.which = 77;
ev.ctrlKey = true;
$(window).trigger(ev);
对于较旧的版本,您将必须使用以下内容。
const ev: JQuery.Event<Window> = $.Event("keydown", { ctrlKey: true });
ev.which = 77;
$(window).trigger(ev);