2016-10-28 5 views
0

TypeScriptをよく理解しているので、たいていのことをする方法を知っています。TypeScriptにグローバル名前空間に付随する関数を知らせる方法

私はglobalの機能を持っているとします。例えば、getThisOrThat()がイベントです。この関数はグローバルに添付されていますが、プロジェクトのnode_modulesにあるモジュールの一部です。モジュールは機能を直接エクスポートしないので(グローバルにアタッチされていることを覚えておいてください)、完璧な型付けがあります。

transpiledは次のようになりますので、だから今、私はimport { getThisOrThat } from 'the-module';を行うことはできません。

module.getThisOrThat() /// crash and burn cause it's on global :)

私はできないrequire()モジュールのいずれかtranspiledとき、それは当然の同じだ、ので。

コンパイラを渡すには、現在2つのオプションがあります。

  • declare var getThisOrThat: Function;
  • global.getThisOrThat()

コンパイラチェックを通過するため、これらの作業のいずれもが、私は実際にプロジェクト全体にグローバルな機能を備えたこのモジュールのタイピングの恩恵を与えたいです。私はまた<ref />とそれを追加しようとしましたが、運はありません。

+1

グローバルを含むd.tsファイルを作成しようとしましたか? –

+0

私はそれがどのように見えるかわからないからではありません。私はグローバル関数のためのd.tsを持っていますが、私はモジュールを呼び出すことができますbcをインポートすることはできません。関数。 d.tsはどのように見え、どのようにそれを要求/インポートするのでしょうか? –

答えて

2

モジュール内でいくつかの関数を宣言するタイピングがありますが、実行時にグローバルであるかのように使用したいのですか?次に、あなた自身のd.tsファイルを追加することができます。augments global namespace

declare module 'the-module-global' { 

import * as TheModule from 'the-module';// this import is used for typechecking only 

global { 
    var getThisOrThat : typeof TheModule.getThisOrThat; 
} 

} 
+0

あなたの文言はまさに私が必要なものです。私はそれを試してみましょう。ありがとう! –

関連する問題