Typescript 1.5和window.event.ctrlKey

时间:2015-07-31 22:13:50

标签: javascript-events typescript

出于调试目的,我有时会检查ctrl键是否被按下以获得特殊的秘密'动作。我可以在一个不需要事件处理程序本身的任意函数中执行此操作(它可能是某事件的回调,也可能是事件处理程序)。

我在打字稿中使用了以下内容

if (window.event.ctrlKey)

现在突然使用Visual Studio 2015 RTM(我假设这是TS 1.5),由于ctrlKey不再位于event对象中,因此不允许这样做。

我不确定为什么,我比任何事都更好奇。将其添加回来是否安全 ?它为什么被带走?

[顺便说一下,事实证明这可能不适用于Firefox,所以我也在寻找完整的跨平台解决方案]

1 个答案:

答案 0 :(得分:2)

您可以自己轻松地将其添加到界面中。例如以下代码执行此操作:

interface Event{
    ctrlKey : boolean;
}

if (window.event.ctrlKey){

}

查看lib.d.ts上的文档:http://basarat.gitbooks.io/typescript/content/docs/types/lib.d.ts.html

如果使用类型断言,那说它会更好:

if ((<KeyboardEvent>window.event).ctrlKey){

}

查看关于类型断言的文档:http://basarat.gitbooks.io/typescript/content/docs/types/type-assertion.html