有没有人有在TypeScript中使用专有属性(如“ ontouchend”和“ gestureend”)的有效示例?

我已经尝试过使用下面的方法:

//Create an alert.
function TouchedScreen(username: string): void  {
    alert(username + " has touched the screen.");
}

//Touch anywhere on screen for an alert on iOS/Android
window.ontouchend = () => {
    TouchedScreen("[username]");
};


我假设这是由于ontouchend是专有属性,使用addEventListener可以正确编译,但我不想将其与属性一起使用,如何在TypeScript中做到这一点?

最佳答案

只需告诉打字稿这些属性存在于Window上:

interface Window{
    ontouchend: Function;
}

//Touch anywhere on screen for an alert on iOS/Android
window.ontouchend = () => { // compiles fine
};


如果您想在所有HTMLElement上都使用相同的事件,也只需告诉TypeScript:

interface HTMLElement {
    ontouchend: Function;
}

var a: HTMLAnchorElement;
a.ontouchend = () => { // compiles fine
};

09-07 14:37