2

我正在使用 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'

为什么它不覆盖该属性?

4

1 回答 1

1

这是因为 TypeScript 中已经定义了一个事件,所以你有一个名称冲突。

你能在你的 JavaScript 中给它起别名吗,例如......

var eventJS = Event;

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

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

interface Event {
    add(name: string, eventType: string, callback: Function) : any;
};
于 2012-11-15T18:55:10.437 回答