我想在Visual Studio Express for Web中使用TypeScript中的get / set语法。我该如何启用它。我在编译时遇到此错误;
属性访问者仅在定位ES5或更高版本时可用
正在编译的文件的构建操作为TypeScriptCompile
。我不知道如何在Visual Studio中添加必要的编译器开关。
任何帮助都将不胜感激。
答案 0 :(得分:23)
TypeScript 0.8.2已经改变了。您现在更改了TypeScriptTarget
文件中的.csproj
:
<TypeScriptTarget>ES3</TypeScriptTarget>
到
<TypeScriptTarget>ES5</TypeScriptTarget>
<强> MyApp.csproj 强>:
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<TypeScriptTarget>ES5</TypeScriptTarget>
<TypeScriptIncludeComments>true</TypeScriptIncludeComments>
<TypeScriptSourceMap>true</TypeScriptSourceMap>
<TypeScriptModuleKind>AMD</TypeScriptModuleKind>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<TypeScriptTarget>ES5</TypeScriptTarget>
<TypeScriptIncludeComments>false</TypeScriptIncludeComments>
<TypeScriptSourceMap>false</TypeScriptSourceMap>
<TypeScriptModuleKind>AMD</TypeScriptModuleKind>
</PropertyGroup>
答案 1 :(得分:21)
您需要将-target ES5传递给编译器。使用项目文件中的msbuild任务触发编译。您的项目文件可能有一个“TypeScriptCompile”目标,如onr bellow,只需确保传递目标参数。这是一个例子:
<Target Name="TypeScriptCompile" BeforeTargets="Build">
<Message Text="Compiling TypeScript files" />
<Exec Command=""$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc" -target ES5 @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
</Target>
答案 2 :(得分:5)
我正在将Visual Studio 2013 Update 4与Web Essentials一起使用。 Microsoft已经更轻松地更改了目标ECMAScript版本。
您现在可以执行以下操作:
我相信ECMAScript 5目前是默认的。您现在也可以选择ECMAScript 3或ECMAScript 6作为目标。
答案 3 :(得分:2)
指示TSC.EXE生成ES5兼容代码的开关是--target ES5(注意双破折号)。
每个项目都有一个名为[Something] .csproj的文件(在我们的例子中是C#项目)。使用记事本打开该文件,然后查找Target
xml元素。通过添加--target ES5
来更改exec命令。
在:
<Exec Command=""$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc" @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
后:
<Exec Command=""$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc" --target ES5 @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
答案 4 :(得分:1)
使用Studio 2012,项目模板类型TypeScript构建,在项目csproj文件中设置为ES3
ES3
将其更改为ES3至ES5,保存并重新加载项目。