2017-05-26 6 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がこのファイルをモジュールとして扱うためには、インポートを行う必要があります。だから、これはまた、働いてきたでしょう:これが最後hereで文書化されて

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

関連する問題