2015-04-08 66 views
1

首先嚐試使用TypeScript。所有興奮!從本地文件添加到Interface IAugmentedJQuery

Im擴展angular.element(IAugmentedJQuery)通過angular.element.prototype.myMethod=fn() {...};的某些自定義方法該函數可以工作,但是TypeScript將不允許它。編譯器說:

錯誤TS2339:屬性'myMethod'在'IAugmentedJQuery'類型上不存在。

我嘗試了很明顯的:

interface IAugmentedJQuery{ 
    myMethod(): IAugmentedJQuery; 
} 

但是,這並不能幫助。但是,如果我在第一次定義的angular.d.ts文件中添加定義,則一切正常。不應該做同樣的事情嗎?

回答

1

添加到接口時,附加接口必須位於同一個公共根目錄下。

因爲IAugmentedJQuery位於angular模塊中,所以您需要將定義添加到該根目錄。

declare module angular { 
    interface IAugmentedJQuery{ 
     myMethod(): IAugmentedJQuery; 
    } 
} 
+0

非常感謝。這使得總體感覺! –

+0

只是爲了澄清,當你說「相同的共同根」,你指的是模塊名稱,是否正確? – Brocco

+0

基本上是的:) – Fenton