我遇到了一些障碍,因为我想开始使用 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/