typescript中的语法与javascript中的下面一行在语义上等效的语法是什么?
// Some knockout event handler
myFunc(data: string, evt: Event) {
// If enter or tab key up were detected add the excuse to the collection
if (evt.enterKey || evt.which == 9) {
// Do Something
}
}
我遇到的问题是,与常规javascript事件不同,typescript Event类没有enterKey
或which
属性。那么,我如何在不出现typescript编译错误和难看的红色波浪形下划线的情况下检测到按下了哪个键呢?
5条答案
按热度按时间h9a6wy2h1#
您需要使用更专门的事件类型
KeyboardEvent
,如下所示:如果你还想删除
evt.enterKey
的错误,你需要通过扩展接口来添加它--尽管我不知道这是一个真实的的属性,因为它不是技术上的一个控制键,比如CTRL
、SHIFT
或ALT
,它们都有关于事件的属性:62o28rlo2#
对于React用户
其中,
HTMLDivElement
是onKeyDown
所附加到的元素的类型。下面是所有支持的HTML元素的列表(从第32-90行)。
wydwbb8l3#
您需要注册事件,例如:
快乐编码!
7bsow1i64#
在React中:
声明全局接口:
那就用吧:
7ivaypg95#
我正在分享我的经验。希望这对某人有用。
如果您使用的是
EventListener
,则不能简单地将KeyboardEvent
作为参数传递。我使用了as
关键字来减少类型错误。