使用js插件修改typescript中的Event

时间:2012-11-15 18:07:48

标签: javascript typescript

我使用Event.js来捕获滑动,https://github.com/mudcube/Event.js,如果我尝试declare var Event: any;然后Event.add(test, "swipe", function() {}, { snap: 45 });,则会产生以下错误:

Error   1   The property 'add' does not exist on value of type '{ prototype: Event; CAPTURING_PHASE: number; AT_TARGET: number; BUBBLING_PHASE: number; new(): Event; }'

如果我尝试:

declare interface Event {
    add: any;
};

我得到Duplicate identifier 'add'

为什么不覆盖该属性?

1 个答案:

答案 0 :(得分:1)

这是因为在TypeScript中已经定义了一个事件,因此您有一个名称冲突。

您可以在JavaScript中对其进行别名,例如......

var eventJS = Event;

然后你可以在你的TypeScript中引用eventJS并避免碰撞。

否则,如果您只需要第二个add函数,请声明其签名,只要它不接受相同的参数,它就应该作为覆盖。

interface Event {
    add(name: string, eventType: string, callback: Function) : any;
};