2017-05-26 162 views
0

我想在已聲明的角度名稱空間(來自「@ types/angular」)內部增加IHttpPromise<T>。這樣我就可以寫$http.then(...).myCustomMethod(...)在TypeScript中增加一個聲明名稱空間中的接口

我能夠只是寫在全球範圍內,以增加接口輕鬆:

interface JQuery { 
    $custom: string; 
} 

對於命名空間內的接口,同樣沒有明顯的工作。嘗試了幾次,例如再次聲明angular命名空間並將擴展接口放在裏面,但是這個和其他許多變體都不起作用。

請注意,我沒有使用(外部)模塊。

回答

1

找到解決方案。即使你不使用的模塊,你就必須做到以下幾點在一個單獨的聲明文件:

import { IHttpPromise } from '@types/angular'; 

declare module '@types/angular' { 
    interface IHttpPromise<T> { 
     myCustomMethod(): something; 
    } 
} 

import語句的內容本身並不重要。我們必須做一個導入來使TS將這個文件當作一個模塊來運行。所以這也可以工作:

import * as angular from '@types/angular'; 

這是記錄在末尾here

相關問題