我正在遇到一些障碍,因为我想开始使用 Google Analytics Cordova plugin,但我正在使用TypeScript编写所有的javascript资源.以下是我遇到的具体问题的一个很好的例子: window.plugins.googleAnalyticsPlug
window.plugins.googleAnalyticsPlugin.startTrackerWithAccountID("UA-xxxxxxx-x");
window.plugins上的TypeScript balks,抛出了编译错误:
The property ‘plugins’ does not exist on value of type ‘Window’.
这完全合情合理.但是,我无法通过使用declare var窗口解决这个问题.声明,因为它为窗口创建了重复的标识符.
第一步是扩展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; }