3


我有一个 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 文件仍然具有关于 a 的原始 .js 构建代码形状模块。我认为.d.ts 扩展名可能存在问题,并将这些文件重命名为 Framework_d.ts 和 Graphics_d.ts。这也没有建造它们!

在这一点上,我不知所措。我查看了 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="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
</Target>

这确实也应该构建这些文件。我只是不知道它为什么拒绝。有谁知道如何解决这一问题?

4

2 回答 2

2

如果它们是您所说的声明文件,那么它们将没有 javascript 输出。我认为您不需要将这些“添加”到项目中,或者至少不需要对它们应用 TypeScriptCompile 构建操作。您可以使用将它们包含在其他源文件中

///<reference path="Framework\Framework.d.ts" 
///<reference path="Graphics.d.ts" 

所以他们看到了声明。

于 2012-10-24T01:07:17.253 回答
0

我不确定这是否是您的情况,但是 .ts 文件编码存在一些问题。

不幸的是,TypeScript 无法编译带有签名的 UTF-8。您可以通过“文件”-->“高级保存选项”--> 选择“不带签名的 UTF-8”来选择另一个保存选项。

检查当前问题。 http://typescript.codeplex.com/workitem/85

谢谢

于 2012-10-24T20:28:53.130 回答