在Visual Studio中使用TypeScript定位ES5

Ezw*_*ard 30 typescript

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

属性访问者仅在定位ES5或更高版本时可用

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

任何帮助,将不胜感激.

Ian*_*oyd 24

TypeScript 0.8.2已经改变了.现在改变TypeScriptTarget了在.csproj从文件中:

<TypeScriptTarget>ES3</TypeScriptTarget>
Run Code Online (Sandbox Code Playgroud)

<TypeScriptTarget>ES5</TypeScriptTarget>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

另见Asher Barak答案


moh*_*azy 22

您需要将-target ES5传递给编译器.使用项目文件中的msbuild任务触发编译.您的项目文件可能有一个"TypeScriptCompile"目标,如onr bellow,只需确保传递目标参数.这是一个例子:

<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>
Run Code Online (Sandbox Code Playgroud)


Dev*_*mbe 5

我正在将Visual Studio 2013 Update 4与Web Essentials一起使用。Microsoft使更改目标ECMAScript版本变得更加容易。

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

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

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