【发布时间】:2012-09-30 10:24:41
【问题描述】:
我想在 Visual Studio Express for Web 中的 TypeScript 中使用 get/set 语法。我该如何启用它。我目前在编译时遇到此错误;
属性访问器仅在面向 ES5 或更高版本时可用
正在编译的文件具有TypeScriptCompile 的构建操作。我不知道如何从 Visual Studio 中添加必要的编译器开关。
任何帮助将不胜感激。
【问题讨论】:
标签: typescript
我想在 Visual Studio Express for Web 中的 TypeScript 中使用 get/set 语法。我该如何启用它。我目前在编译时遇到此错误;
属性访问器仅在面向 ES5 或更高版本时可用
正在编译的文件具有TypeScriptCompile 的构建操作。我不知道如何从 Visual Studio 中添加必要的编译器开关。
任何帮助将不胜感激。
【问题讨论】:
标签: typescript
您需要将 -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>
【讨论】:
指示 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)"', ' ')" />
【讨论】:
使用Studio 2012,项目模板类型TypeScript构建,在项目csproj文件中设置为ES3
ES3
将其改为ES3到ES5,保存并重新加载项目。
【讨论】:
"tsc.exe" exited with code 1.
这在 TypeScript 0.8.2 中发生了变化。您现在将 .csproj 文件中的 TypeScriptTarget 更改为:
<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>
【讨论】:
我正在使用带有 Web Essentials 的 Visual Studio 2013 Update 4。 Microsoft 使更改目标 ECMAScript 版本变得更加容易。
您现在可以执行以下操作:
我相信 ECMAScript 5 目前是默认的。您目前也可以选择 ECMAScript 3 或 ECMAScript 6 作为目标。
【讨论】: