我有一个问题,我想来自我使用 Type Script 的 ASP.NET MVC 项目。为了进行测试,我使用 HTML TypeScript 模板创建了一个项目。我可以完美地创建两个模块并在另一个模块中使用其中一个,如下所示:
import authModule = module("Authenticate");
import testModule = module("TestModule");
export module SiteMaster {
authModule.Authenticate.run();
testModule.TestModule.run();
}
它正在正确生成这样的 JavaScript:
define(["require", "exports", "Authenticate", "TestModule"], function(require, exports, __authModule__, __testModule__) {
var authModule = __authModule__;
var testModule = __testModule__;
(function (SiteMaster) {
authModule.Authenticate.run();
testModule.TestModule.run();
})(exports.SiteMaster || (exports.SiteMaster = {}));
})
然后我将我的 Typescript 项目中的编译器命令复制到我的 ASP.NET MVC 4.5。
<Target Name="BeforeBuild">
<Exec Command=""$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc" --module amd @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
它正在正确编译。显然编译正确。
但是有一个问题:当我在我的 ASP.NET MVC 应用程序中创建相同的模块时,我在导入行中收到编译错误:
The name '"Authenticate"' does not exist in the current scope
A module cannot be aliased to a non-module
TestModule 也是如此。
我在下面包含了对该模块的引用,但错误仍然存在,并在 Typescript 模板中查看该引用不是必需的。
/// <reference path='Authenticate.ts'/>
这里有什么问题?