Type Script を使用した ASP.NET MVC プロジェクトから発生したと思われる問題があります。テストのために、HTML TypeScript テンプレートを使用してプロジェクトを作成しました。次のように、2 つのモジュールを完全に作成し、そのうちの 1 つを別のモジュールで使用できます。
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'/>
ここで何が問題なのですか?