31

我想在 Visual Studio Express for Web 中的 TypeScript 中使用 get/set 语法。我该如何启用它。我目前在编译时收到此错误;

属性访问器仅在面向 ES5 或更高版本时可用

正在编译的文件的构建操作为TypeScriptCompile. 我不知道如何从 Visual Studio 中添加必要的编译器开关。

任何帮助,将不胜感激。

4

5 回答 5

25

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 的回答

于 2013-06-23T14:28:08.730 回答
22

您需要将 -target ES5 传递给编译器。使用项目文件中的 msbuild 任务触发编译。您的项目文件可能有一个“TypeScriptCompile”目标,就像下面的 onr 一样,只需确保传递了目标参数。这是一个例子:

<Target Name="TypeScriptCompile" BeforeTargets="Build">
   <Message Text="Compiling TypeScript files" />
   <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; -target ES5 @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
</Target>
于 2012-10-10T04:01:26.490 回答
5

我正在使用带有 Web Essentials 的 Visual Studio 2013 Update 4。Microsoft 使更改目标 ECMAScript 版本变得更加容易。

您现在可以执行以下操作:

  1. 右键单击您的项目名称,然后单击属性。
  2. 在“属性”窗口中选择“Typescript Build”
  3. 将 ECMAScript 版本设置为“ECMAScript 5”。

我相信 ECMAScript 5 目前是默认的。您目前还可以选择 ECMAScript 3 或 ECMAScript 6 作为目标。

于 2015-03-18T17:46:10.787 回答
2

指示 TSC.EXE 生成 ES5 兼容代码的开关是 --target ES5(注意双破折号)。

每个项目都有一个名为 [Something].csproj 的文件(在我们的例子中是 C# 项目)。使用记事本打开该文件并查找Targetxml 元素。通过添加--target ES5.

前:

 <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />

后:

<Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; --target ES5 @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
于 2012-10-10T19:46:18.440 回答
1

使用Studio 2012,项目模板类型TypeScript构建,在项目csproj文件中设置为ES3

ES3

将其更改为 ES3 到 ES5,保存并重新加载项目。

于 2013-06-01T12:21:16.173 回答