2013-07-17 3 views
4

Я столкнулся с небольшим препятствием, так как хотел бы начать использовать Google Analytics Cordova plugin, но я составляю все свои javascript-ресурсы в TypeScript. Вот хороший пример конкретной проблемы, я имею:Использование TypeScript с плагинами PhoneGap/Cordova

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

машинопись уклоняется в window.plugins, метания ошибку компиляции:

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

И это имеет полный смысл. Однако я не могу обойти это, используя инструкцию declare var window;, поскольку это создает дубликат идентификатора для окна.

ответ

16

Шаг один является расширение интерфейса Window, который вы можете сделать так:

interface Window { 
    plugins: any; 
} 

Это не будет означать никаких ошибок компилятора, но если вы не доопределить это не означает отсутствие автозаполнения. Так эта линия теперь будет работать:

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

Для того, чтобы вещи на ступеньку выше и получить себе некоторые функции автозавершения (и получить ваше правописание проверило тоже), вы можете использовать эту расширенную версию определения.

+1

Удивительный, спасибо! –

Смежные вопросы