我有一個Visual Studio 2012 TypeScript項目。當我第一次創建項目時,我添加了2個新的.ts文件,這些文件是Framework.ts & Graphics.ts。我最近添加了兩個TypeScript文件作爲聲明文件並將它們命名爲.d.ts,例如Framework.d.ts和Graphics.d.ts。有趣的部分是,所有這些文件中的4個都將Build Action屬性設置爲TypeScriptCompile,但其中只有2個構建(Framework.ts和Graphics.ts),其他.d.ts文件仍然具有原始.js構建代碼形狀模塊。我想可能是擴展名爲.d.ts的問題,並將這些文件重命名爲Framework_d.ts和Graphics_d.ts。這也沒有建立它們!Visual Studio 2012 TypeScript項目在編譯期間忽略兩個文件
此時我不知所措。我看着的csproj文件:
<TypeScriptCompile Include="Framework\Framework.d.ts" />
<Content Include="Framework\Framework.d.js">
<DependentUpon>Framework.d.ts</DependentUpon>
</Content>
<Content Include="Graphics\Graphics.d.js">
<DependentUpon>Graphics.d.ts</DependentUpon>
</Content>
<Content Include="TestPages\SpriteBatch.html" />
<TypeScriptCompile Include="Framework\Framework.ts" />
<Content Include="Framework\Framework.js">
<DependentUpon>Framework.ts</DependentUpon>
</Content>
<Content Include="Graphics\Graphics.js">
<DependentUpon>Graphics.ts</DependentUpon>
</Content>
<TypeScriptCompile Include="Graphics\Graphics.d.ts" />
<TypeScriptCompile Include="Graphics\Graphics.ts" />
然後爲打字稿編譯器執行命令:
<Target Name="BeforeBuild">
<Exec Command=""$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc" @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
</Target>
這確實應該太建這些文件。我只是不知道爲什麼拒絕。有誰知道如何解決這一問題?
如果我使用 進口框架=模塊( 「框架」); 然後我得到一個錯誤,因爲require()函數不存在。因爲js中生成的行是var Framework = require(「Framework」);有什麼我缺少的要求? – IanelGreenleaf
所以你需要在你的網頁上包含require.js(編譯後的打字稿之前)。如果您設置了編譯標誌--target AMD,TypeScript將生成AMD兼容代碼(請參閱此主題以瞭解如何編輯VisualStudio項目文件以添加必要的編譯器標誌; http://stackoverflow.com/questions/12811034/targeting-es5 -with-typescript-in-visual-studio在底部的註釋中;這也包括源地圖的標誌)但是,即使TypeScript將生成對require的調用,但它不包括require功能。 – Ezward
另外,你需要擴展到模塊的完整路徑,所以它需要: Framework = module(「Framework \ Framework.ts」)。 這工作如果Framework.ts是真正的打字編碼結果在編譯的JavaScript。如果你只是包含聲明,使用///引用的東西.. – Ezward