我使用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'
为什么不覆盖该属性?
答案 0 :(得分:1)
这是因为在TypeScript中已经定义了一个事件,因此您有一个名称冲突。
您可以在JavaScript中对其进行别名,例如......
var eventJS = Event;
然后你可以在你的TypeScript中引用eventJS并避免碰撞。
否则,如果您只需要第二个add函数,请声明其签名,只要它不接受相同的参数,它就应该作为覆盖。
interface Event {
add(name: string, eventType: string, callback: Function) : any;
};