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 で Event が定義されているため、名前の競合が発生するためです。

たとえば、JavaScriptでエイリアスを作成できますか...

var eventJS = Event;

次に、TypeScript で eventJS を参照して、衝突を回避できます。

そうではなく、2 番目の add 関数だけが必要な場合は、その署名を宣言し、同じ引数を受け入れない限りオーバーライドとして機能する必要があります。

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