2017-10-03 13 views
0

ように、モジュールのインポートを使用しますforceをグローバルスコープ内の変数と擬似/交換できるようにしたい。活字体は、私は多くの機能を定義するモジュールを持っているインタフェース

私はこのモジュールによってエクスポートされた関数のためのインタフェースを定義することだということを達成するために:

const importImpl: Force = { 
    setNodeCount: force.setNodeCount, 
    getNodeCount: force.getNodeCount 
} 

const globalImpl: Force = { 
    getNodeCount: globalObject.getNodeCount, 
    setNodeCount: globalObject.setNodeCount 
}; 

:インポートモジュール、またはグローバルを介してこれを実現そして

interface Force { 
    setNodeCount: (number) => void; 
    getNodeCount:() => number; 
} 

を実行時にこれらの2つの実装のどちらかを選択できます。

インポートされたモジュールのインターフェイスを判断し、ダイナミックに置き換える方が簡単ですか?

答えて

0

TypeScriptは構造型を使用するため、明示的なインターフェイス(Force)を定義し、importImplglobalImplの種類として使用する必要はありません。どちらもすでに同じ推論インタフェースを持っています。

コードのこの場所にこのタイプが必要な場合は、この方法で「キャプチャ」できると思います。type Force = typeof force;

関連する問題