2017-01-18 28 views
3

強く型付けされたグローバル変数が必要です。 Extending TypeScript Global object in node.js、私はnode.d.ts.に指定されていますGlobalインタフェースを拡張.d.tsファイルを追加する必要がglobal変数にフィールドを追加するために:ここで説明したようにNode.jsグローバル変数とTypeScript

また

、Basaratが述べたように:

をあなたのファイルは任意のルートレベルのインポートやエクスポートをきれいにする必要があります。その はファイルをモジュールに変換し、グローバルな 型宣言の名前空間から切断します。私はanyタイプを使用することが非常に喜んでいないよ

declare namespace NodeJS{ 
    interface Global { 
     foo: Foo 
     bar: Bar 
    } 
} 

は今、私が作成したタイプですカスタムインターフェースGlobalインターフェイス上のフィールドを持っている必要があります。

私はこの宣言ファイルにすべてのインターフェイス宣言を移動/コピーできますが、FooとBarは順番に、モーメントなどのサードパーティインターフェイスを含む多くのフィールドを集約しているため、私にとっては悪い解決策です。

私はこのパラドックスの解決策が必要です

+0

あなたはこの解決策を見つけましたか? –

答えて

0

この作品が見つかりました。

NodeJS.Globalインターフェイスのプロパティをany型で宣言するファイルが1つあります。このファイルは、インポートまたはリフレッシュのクリーンでなければなりません。

node.d.ts

declare namespace NodeJS{ 
    interface Global { 
     foo: any 
    } 
} 

は、第2のファイルに正しい型を持つグローバル変数を宣言します。

global.d.ts

import IFoo from '../foo' 

declare global { 

    const foo:Ifoo 

} 
関連する問題