2

次の.tsようなモジュールとモジュール外の関数を含むファイルがあります。

$(function () {
   populate()
});

function populate() {
...
}

module portfolio.charts {
   export function foo(){
   ...
   }
}

Typescript コンパイラ コマンドを使用しtsc --declarationて、宣言ファイルが作成されます。この.d.tsファイルには、次のコードが含まれています。

 function populate(): void;
 module portfolio.charts {
       function foo(): void;
 }

populate()関数とportfolio.chartsモジュールがエクスポートされるのはなぜですか? export関数やモジュールをエクスポートするにはキーワードが必要だと思いました。d.tsファイルを別のファイルへの依存関係として追加すると、すべての関数とモジュールを使用できます。それらを非公開と宣言できますか? 私の英語に感謝し、申し訳ありません。

4

1 に答える 1

7

TypeScript の仕様はこれに関して少しドライなので、いくつかの例を次に示します。

例 1

module MyModule {
    class MyClass {
        myFunction() {
            alert('Test');
        }
    }

    function myOtherFunction() {
        alert('Test Again');
    }
}

この例でMyModuleは、グローバル モジュール (他のモジュールの内部にはありません) であるため、これ定義ファイルに表示されます。MyClassmyFunctionありmyOtherFunction、定義では見えません。

module MyModule {
}

したがって、宣言で何かを可視化するには、どちらか...

  1. あなたの例のMyModuleように、グローバルスコープにある必要があります。populate

  2. exportキーワードを前に付ける必要があります

あなたの例では、ポイント1が適用されます。

于 2013-03-12T15:36:43.810 に答える