2

他のファイルの TypeScript モジュールに苦労しています。説明させてください...

私はファイルModuleOne.tsを持っています:

module Messages {
    export var TestAlert: string = "It works!";
}

私のapp.tsには、次のものがあります。

/// <reference path="Scripts/typings/jquery/jquery.d.ts" />
/// <reference path="ModuleOne.ts" />
declare var $;

$(function () {
    alert(Messages.TestAlert);
});

正常にコンパイルされますが、コンソールで「Uncaught ReferenceError: Messages is not defined」が表示されます。Messages モジュールを ModuleOne.ts から app.ts に移動すると、すべて正常に動作します。ModuleOne.ts ファイルから Messages モジュールを使用するにはどうすればよいですか?

4

1 に答える 1

2

これの最も一般的な原因は、ページに両方のファイルを含めていないことです。

<script src="app.js"></script>

app.js は ModuleOne.js に依存しているため、これはエラーになります。そのため、それへの参照も追加する必要があります。

<script src="ModuleOne.js"></script>
<script src="app.js"></script>

または、 --out フラグを使用して TypeScript をコンパイルし、プログラム全体に対して単一の JavaScript ファイルを生成することもできます。

tsc --out final.js app.ts

コンパイラはすべての依存関係を処理するため、最上位ファイルを指定するだけで済みます。

于 2013-09-08T10:21:31.107 に答える