如何在其他文件中使用模块?

时间:2013-09-08 10:14:53

标签: typescript

我在其他文件中遇到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 not defined”。如果我将Messages模块从ModuleOne.ts移动到app.ts,一切正常。如何使用ModuleOne.ts文件中的Messages模块?

1 个答案:

答案 0 :(得分: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

编译器将为您提供所有依赖项,因此您只需指定顶级文件。