2016-03-27 15 views
0

Bu kadar uzun bir süre önce buna benzer bir soru sordum ve büyük bir yardım aldım, ama cevabımla bile bu kodla mücadele ediyorum. typescript yılında - -typescript - zorluk "genişleyen" IAngularStatic

yazdığım küçük bir hizmet benim kodda bu olarak listelenen, onunla gitmek için google api (GAPI) ve bir arayüz ile kullanımı;

gapiService.ts Şimdi
class GoogleAuthenticationService implements IGoogleAuthenticationService { 
    // ... 
} 

interface IGoogleAuthenticationService extends ng.IServiceProvider { } 

, bu gibi kullanabilirsiniz, ancak OKB amaçlar için, ben ng yükleme parçası olmak angular ad/modül bunları eklemek istiyorum. Bu yüzden
ng.GoogleAuthenticationService 
ng.IGoogleAuthenticationService 

Ben bu işe düşündüm, ama ben de onları ya da başka hata bulamıyorum öyle hata almaya devam ... onları diyebiliriz. Ben ... hataların aşağıdaki listede geçtiniz
  • Property 'GoogleAuthenticationService' does not exist on type 'IAngularStatic'
  • Module 'angular' has no exported member 'IGoogleAuthenticationService'
  • An export assignment cannot be used in a module with other exported elements.

Bir fikrin nasıl hedefliyor ettiğimi elde etmek

? Beni battırıyor.

gapiAuth.d.ts

declare module 'angular' { 
    interface IGoogleAuthenticationService{} 
    var GoogleAuthenticationService: GoogleAuthenticationService 
} 
+0

ben senin tüm kodunu çevreleyen tahmin (sınıf artı arayüzü) wi modül açısal {} 'çalışır –

+0

Buraya bakın, [have-interface-extend-string-functions] (http://stackoverflow.com/questions/36031767/have-interface-extend-string-functionality/36067378# 36067378) Aynı sorudan daha fazlasını veya daha azını sorarsanız, –

+0

Woah. Köşeli parantezlerdeki beyanlarla nedir? Bu trippy - Bunun ne anlama geldiğini bilmiyorum. – Ciel

cevap

0

ng.GoogleAuthenticationService ng.IGoogleAuthenticationService

Sadece angular ad koymayı:

namespace angular { 
    class GoogleAuthenticationService implements IGoogleAuthenticationService { 
    // ... 
    } 

    interface IGoogleAuthenticationService extends ng.IServiceProvider { } 
} 
+0

Bu işe yaramıyor. Diğer tüm açıları yanlış yapar. – Ciel

+0

Sanırım, 'açısal' olanın tanımını değiştirdiği için. – Ciel

+0

onları "foo.d.ts" adlı yeni bir dosyaya koyun. Zaten bir modül olan – basarat