1

我在 Visual Studio(Express 2012 for Web)中有一个现有的 TypeScript 项目。该项目是使用 TypeScript 0.8.1 创建的。

一些类使用属性,因此需要--target ES5编译器参数。

我刚刚将插件更新为 TypeScript 0.8.2,并按照此处定义的步骤启用“保存时编译”。这如所描述的那样工作,包括编译使用属性的类。

但是,当我尝试构建项目时,会出现以下错误: Config.ts (32,6): Property accessors are only available when targeting ES5 or greater

这是我的 .csproj 文件中的相关部分:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" />
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
  <TypeScriptTarget>ES5</TypeScriptTarget>
  <TypeScriptIncludeComments>true</TypeScriptIncludeComments>
  <TypeScriptSourceMap>true</TypeScriptSourceMap>
</PropertyGroup>

完整的文件可以在这里看到。

为什么它适用于编译单个文件,但如果我构建或重建整个项目则不行?

编辑:更新片段以显示该<Import>标签也包括在内。

编辑 2:添加了完整项目文件要点的链接。

4

1 回答 1

2

Did you modify your .csproj file to also import the TypeScript .targets file (in lieu of the build event action to invoke TSC)? If you just update the PropertyGroup, you won't actually be invoking the compiler through the thing that turns those settings into command-line flags.

Edit: You need the Import tag to be after the PropertyGroup (otherwise the imported file doesn't "see" the property values you're setting). Ideally the Import would be last or near-last in the file - definitely after all the PropertyGroups that change settings it depends on.

于 2013-02-25T20:44:45.507 回答