将TypeScript与PhoneGap / Cordova插件配合使用

时间:2013-07-17 18:42:35

标签: cordova typescript phonegap-plugins

我遇到了一些障碍,因为我想开始使用Google Analytics Cordova plugin,但我正在使用TypeScript编写所有的javascript资源。以下是我遇到的具体问题的一个很好的例子:

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

window.plugins处的TypeScript balks,抛出编译错误:

  

属性'plugins'在'Window'类型的值上不存在。

这完全合情合理。但是,我无法通过使用declare var window;语句解决这个问题,因为这会为窗口创建重复的标识符。

1 个答案:

答案 0 :(得分:16)

第一步是扩展Window接口,你可以这样做:

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;
}