4

Google アナリティクス Cordova プラグインの使用を開始したいのですが、TypeScript ですべての JavaScript アセットを作成しているため、少し障害が発生しています。これは、私が抱えている特定の問題の良い例です。

window.plugins.googleAnalyticsPlugin.startTrackerWithAccountID("UA-xxxxxxx-x");

TypeScript は でボークしwindow.plugins、コンパイル エラーをスローします。

プロパティ「プラグイン」は、タイプ「ウィンドウ」の値に存在しません。

そして、それは完全に理にかなっています。declare var window;ただし、ウィンドウの重複した識別子が作成されるため、ステートメントを使用してこれを回避することはできません。

4

1 に答える 1

16

Windowステップ 1 は、次のように行うことができるインターフェイスを拡張することです。

interface Window {
    plugins: any;
}

これはコンパイラ エラーがないことを意味しますが、定義を拡張しない限り、オートコンプリートがないことを意味します。したがって、この行は機能します。

window.plugins.googleAnalyticsPlugin.startTrackerWithAccountID("UA-xxxxxxx-x");

物事をワンランク上に上げて、オートコンプリートを取得する (およびスペルチェックも行う) には、この定義の拡張バージョンを使用できます。

interface GoogleAnalyticsPlugin {
    startTrackerWithAccountID(accountId: string): void;
}

interface Plugins {
    googleAnalyticsPlugin: GoogleAnalyticsPlugin;
}

interface Window {
    plugins: Plugins;
}
于 2013-07-17T18:58:03.387 に答える