Compiler code d'erreur tapuscrit avec set get « avec le code 1 est sorti »

voix
13
get topLeft()      { return this._topLeft;             }

set topLeft(value) {  this._topLeft = value; Recalc(); }

Les travaux de code ci-dessus trouvent en jeu tapuscrit, mais je reçu une erreur de compilation lors de la compilation à partir de Visual Studio 2012 error exited with code 1

Est-ce que quelqu'un a déjà essayé get, set dactylographiée et construire avec succès?

Créé 07/10/2012 à 17:08
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
19

Vous aurez besoin de cibler ECMAScript v5, passer par exemple l' -target ES5argument du compilateur. Cela doit être défini dans les fichiers de configuration projet cible.

Je ne sais pas si VS a construit une mechanims pour éditer des configurations cibles, donc je ne peux vous dire comment le faire manuellement. Il suffit d' ouvrir votre .csprojfichier de projet, recherchez le Targetnœud où la commande du compilateur dactylographiée est situé, et ajoutez l' -target ES5argument.

Dans ma config, il ressemble à ceci:

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

Mettre à jour

De la version 0.8.1.0, la dépendance version hardcoded a été supprimée et le soutien à des sources a été ajouté, et donc le Targetnœud ressemble maintenant à ceci par défaut:

<Target Name="BeforeBuild">
    <Message Text="Compiling TypeScript files" />
    <Message Text="Executing tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
    <Exec Command="tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
</Target>

L'injection targetarguments est encore assez facile, il suffit de le mettre après tscou $(TypeScriptSourceMap):

<Message Text="Executing tsc --target ES5 $(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
<Exec Command="tsc --target ES5 $(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
Créé 07/10/2012 à 18:07
source utilisateur

voix
9

À partir de 0.8.2 a eu un autre changement. Certaines des choses de construction dactylographiée commune a été déplacé de votre .csproj à un fichier de construction externe. Ainsi:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" />

Votre .csproj obtient toujours de mettre quelques arguments sur la construction dactylographiée en les incluant comme éléments dans la construction. un de ces éléments est la version ES. Le modèle créé deux groupes pour moi, un pour le débogage et un pour la libération:

  <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <TypeScriptTarget>ES3</TypeScriptTarget>
    <TypeScriptIncludeComments>true</TypeScriptIncludeComments>
    <TypeScriptSourceMap>true</TypeScriptSourceMap>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)' == 'Release'">
    <TypeScriptTarget>ES3</TypeScriptTarget>
    <TypeScriptIncludeComments>false</TypeScriptIncludeComments>
    <TypeScriptSourceMap>false</TypeScriptSourceMap>
  </PropertyGroup>

pour l'effet désiré il suffit de changer l'ES3 à ES5

Pour une meilleure compréhension de la façon dont cela finit par se retrouver dans le cadre de l'appel au compilateur dactylographiée un coup d'oeil dans le fichier Microsoft.TypeScript.targets.

Bonne chance,

Créé 04/03/2013 à 13:17
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more