2012-10-10 41 views
28

Me gustaría utilizar la sintaxis get/set en TypeScript dentro de Visual Studio Express para Web. ¿Cómo habilito esto? Actualmente recibo este error al compilar;Segmentación de ES5 con TypeScript en Visual Studio

de acceso de propiedad sólo están disponibles cuando la orientación ES5 o mayor

El archivo que se está compilado tiene una acción de construcción de TypeScriptCompile. No sé cómo agregar el compilador necesario desde Visual Studio.

Cualquier ayuda sería apreciada.

Respuesta

19

Debe pasar el ESET del objetivo al compilador. La compilación se desencadena utilizando una tarea msbuild en su archivo de proyecto. Su archivo de proyecto probablemente tenga un objetivo "TypeScriptCompile" como el siguiente, simplemente asegúrese de pasar el argumento de destino. Aquí está un ejemplo:

<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> 
+0

Eso lo hizo. Gracias. – Ezward

2

El interruptor para instruir al TSC.EXE para generar código compatible ES5 es --target ES5 (tenga en cuenta los guiones dobles).

Cada proyecto tiene un archivo llamado [Something] .csproj (proyecto C# en nuestro caso). Abra ese archivo usando el bloc de notas y busque el elemento Target xml. Cambie el comando exec agregando el --target ES5.

Antes:

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

Después:

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

Eso funciona. Gracias. – Ezward

+0

Aquí es a lo que terminé. Esto incluye indicadores para el objetivo de ES5, módulos de AMD y mapas de origen. Básicamente, las cosas que quieres para el desarrollo del navegador. < Exec =" Comando " $ (PROGRAMFILES) \ SDK de Microsoft \ mecanografiado \ 0.8.0.0 \ TSC " --target ES5 --module amd -sourcemap @ (TypeScriptCompile ->' " % (fullpath) " ',' ') "/> – Ezward

1

utilizar el Studio 2012, el proyecto tipo de plantilla mecanografiado la construcción, en el archivo csproj proyecto se ajusta a ES3

ES3

Cámbielo a ES3 a ES5, guárdelo y vuelva a cargar el proyecto.

+0

Lo hice y ahora me sale el error' "tsc.exe" salido con el código 1.' – daniel

20

Esto ha cambiado con TypeScript 0.8.2. Ahora cambia TypeScriptTarget en el archivo de .csproj:

<TypeScriptTarget>ES3</TypeScriptTarget> 

a

<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> 

Véase también Asher Barak answer

4

Estoy utilizando Visual Studio 2 013 Actualización 4 con Web Essentials. Microsoft ha hecho que cambiar la versión de ECMAScript con destino sea mucho más fácil.

Ahora usted puede hacer lo siguiente:

  1. Haga clic derecho en el nombre del proyecto y haga clic en Propiedades.
  2. En la ventana Propiedades, seleccione "Build TypeScript"
  3. Establezca la versión de ECMAScript en "ECMAScript 5".

Creo que ECMAScript 5 es actualmente el valor predeterminado. En este momento también puede elegir ECMAScript 3 o ECMAScript 6 como objetivos.

+1

Esta es ahora la mejor respuesta – Pakman