gpt4 book ai didi

typescript - TypeScript 支持 TouchEvent 吗?

转载 作者:搜寻专家 更新时间:2023-10-30 20:32:35 26 4
gpt4 key购买 nike

更新

TypeScript 1.5.3 added declarations for HTML Touch events to lib.d.ts

我看到它支持UIEvent,但是好像没有触摸事件的接口(interface)。

此代码表示“当前范围内不存在 TouchEvent。”

class Touchy {
private _element:Element;

constructor(theElement:Element) {
this._element = theElement;

theElement.addEventListener("touchstart", (theTouchEvent:TouchEvent) => alert("touchy"));
}
}

我可以使用 UIEvent,但不能使用 TouchEvent。我将如何使用 TypeScript 处理 TouchEvent?谢谢。

最佳答案

自 TypeScript 3.7.7 起,lib.dom.d 支持 TouchEvent,参见 TouchEvent仍然值得查看 Touch Events W3C 规范以更全面地理解 TypeScript 声明。

原答案:谢谢你的建议。我查看了 2011 年 5 月 5 日的触摸事件规范 W3C 工作草案,并从中创建了一组环境声明。最近有一个候选推荐,但我认为这是大多数浏览器中实际实现的。这似乎运作良好。

PS:底部的declare var TouchEvent 不是w3c 草案的一部分。它改编自 UIEvent 的相同代码,是 TypeScript 附带的标准接口(interface)的一部分。

interface Touch {
identifier:number;
target:EventTarget;
screenX:number;
screenY:number;
clientX:number;
clientY:number;
pageX:number;
pageY:number;
};

interface TouchList {
length:number;
item (index:number):Touch;
identifiedTouch(identifier:number):Touch;
};

interface TouchEvent extends UIEvent {
touches:TouchList;
targetTouches:TouchList;
changedTouches:TouchList;
altKey:bool;
metaKey:bool;
ctrlKey:bool;
shiftKey:bool;
initTouchEvent (type:string, canBubble:bool, cancelable:bool, view:AbstractView, detail:number, ctrlKey:bool, altKey:bool, shiftKey:bool, metaKey:bool, touches:TouchList, targetTouches:TouchList, changedTouches:TouchList);
};

declare var TouchEvent: {
prototype: TouchEvent;
new(): TouchEvent;
}

关于typescript - TypeScript 支持 TouchEvent 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12869055/

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