cordova - 将 TypeScript 与 PhoneGap/Cordova 插件一起使用

标签 cordova typescript phonegap-plugins

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

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

TypeScript 在 window.plugins 处犹豫不决,抛出编译错误:

The property 'plugins' does not exist on value of type 'Window'.

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

最佳答案

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

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

关于cordova - 将 TypeScript 与 PhoneGap/Cordova 插件一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17707728/

相关文章:

javascript - window.innerHeight vs window.outerHeight 来计算密度?

ios - 带有无效签名的无效二进制文件

javascript - 监视变量的值 - Angular2+

javascript - 如何从字符串日期 ("Y-m-d"中获取正确的日期)?

javascript - Javascript cookie 是否可以保存到所有应用程序/webviews/inappbrowsers,而不是设备?

angularjs - Cordova 文件插件的目录错误

ios - 错误: Invalid resource directory name for splash

Angular2 Observable 绑定(bind)不正确

android - Phonegap notification.alert 仅适用于 Android

android - 无法安装 PhoneGap 插件