以下のリンクから history.js 宣言ファイルを使用しています。
ただし、「History」オブジェクトは、lib.d.ts のネイティブ History オブジェクトと競合しています。この問題を克服する方法はありますか? トリプルチェックしました。history.js 宣言ファイルへの参照を含めています。
以下のリンクから history.js 宣言ファイルを使用しています。
ただし、「History」オブジェクトは、lib.d.ts のネイティブ History オブジェクトと競合しています。この問題を克服する方法はありますか? トリプルチェックしました。history.js 宣言ファイルへの参照を含めています。
定義ファイルを次のように変更するために、DefinitelyTypedプロジェクトにプルリクエストを送信しました。
interface HistoryAdapter {
bind(element, event, callback);
trigger(element, event);
onDomLoad(callback);
}
interface History {
enabled: bool;
pushState(data, title, url);
replaceState(data, title, url);
getState();
getHash();
Adapter: HistoryAdapter;
back();
forward();
go(X);
log(...messages: any[]);
debug(...messages: any[]);
}
これにより、既存のインターフェイスなどに追加のプロパティとメソッドが既存のHistoryクラス定義に適切に追加されるため、次を使用します。
var history = new History();
これで動作するはずです。DefinitelyTypedから最新の履歴定義を取得するだけです。
Githubリンクが変更されました(まだ)。ファイルは現在次の場所にあります:https ://github.com/borisyankov/DefinitelyTyped/tree/master/history
HistoryStatic
確かに、 DefiniteTyped によって提供されるインターフェイスにオブジェクトをキャストするだけです。
var h = new History();
h = <HistoryStatic>h;
h.getState();
独自のインターフェイスを作成するのHistory
ではなく、既に提供されているインターフェイスを宣言ファイルで拡張した方がよいでしょう。lib.d.ts
これには意図があったのかもしれませんし、見落としていたのかもしれません。