2013-07-17 3 views
4

Google Analytics Cordova plugin을 사용하고 싶습니다만로드 블록이 약간 달리고 있지만 TypeScript에서 모든 자바 스크립트 자산을 작성하고 있습니다.PhoneGap/Cordova 플러그인이있는 TypeScript 사용

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

타이프는 컴파일 오류를 던지고, window.plugins에서 balks : 여기에 내가 가지고있어 특정 문제의 좋은 예입니다

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

은 그리고 그 완전한 의미가 있습니다. 그러나이 문제를 해결하기 위해 declare var window; 문을 사용하면 창에 대한 중복 식별자가 생성되므로이 문제를 해결할 수 없습니다.

답변

16

1 단계는 다음과 같이 할 수있는 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; 
} 
+1

굉장, 고마워! –

관련 문제