我想在 Visual Studio Express for Web 中的 TypeScript 中使用 get/set 语法。我该如何启用它。我目前在编译时收到此错误;
属性访问器仅在面向 ES5 或更高版本时可用
正在编译的文件的构建操作为TypeScriptCompile
. 我不知道如何从 Visual Studio 中添加必要的编译器开关。
任何帮助,将不胜感激。
我想在 Visual Studio Express for Web 中的 TypeScript 中使用 get/set 语法。我该如何启用它。我目前在编译时收到此错误;
属性访问器仅在面向 ES5 或更高版本时可用
正在编译的文件的构建操作为TypeScriptCompile
. 我不知道如何从 Visual Studio 中添加必要的编译器开关。
任何帮助,将不胜感激。
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>
另请参阅Asher Barak 的回答
您需要将 -target ES5 传递给编译器。使用项目文件中的 msbuild 任务触发编译。您的项目文件可能有一个“TypeScriptCompile”目标,就像下面的 onr 一样,只需确保传递了目标参数。这是一个例子:
<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>
我正在使用带有 Web Essentials 的 Visual Studio 2013 Update 4。Microsoft 使更改目标 ECMAScript 版本变得更加容易。
您现在可以执行以下操作:
我相信 ECMAScript 5 目前是默认的。您目前还可以选择 ECMAScript 3 或 ECMAScript 6 作为目标。
指示 TSC.EXE 生成 ES5 兼容代码的开关是 --target ES5(注意双破折号)。
每个项目都有一个名为 [Something].csproj 的文件(在我们的例子中是 C# 项目)。使用记事本打开该文件并查找Target
xml 元素。通过添加--target ES5
.
前:
<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)"', ' ')" />
使用Studio 2012,项目模板类型TypeScript构建,在项目csproj文件中设置为ES3
ES3
将其更改为 ES3 到 ES5,保存并重新加载项目。