Comment désactiver l'erreur suivante dans VS2015?
TS1219 La prise en charge expérimentale des décorateurs est une fonctionnalité susceptible d'être modifiée dans une version ultérieure. Spécifiez '--experimentalDecorators' pour supprimer cet avertissement.
J'essaie d'utiliser des annotations Angular2. J'ai essayé d'ajouter les éléments suivants manuellement au fichier de projet sans succès:
<TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>
J'ai également installé l'extension bêta de TypeScript 1.5.0.
Visual Studio 2015 prend en charge les fichiers tsconfig à partir de TypeScript version 1.8. Créez le fichier tsconfig.json à la racine de votre projet et ajoutez l'option de compilation experimentalDecorators
.
Exemple:
{
"compileOnSave": true,
"compilerOptions": {
"module": "commonjs",
"sourceMap": true,
"experimentalDecorators": true
}
}
Pour les anciennes versions:
https://github.com/Microsoft/TypeScript/issues/3934
Si vous avez un fichier de projet, tsconfig ne sera pas honoré. le fichier de projet est prioritaire. Nous continuons de purger l’histoire d’intégration entre un projet de VS et un tsconfig, car vous pouvez spécifier des options de compilation dans les deux cas.
pour désactiver le message d'erreur, cliquez avec le bouton droit de la souris sur le fichier du projet, déchargez le projet, puis cliquez avec le bouton droit de la souris sur Editer le fichier du projet. À la fin du fichier, il devrait y avoir une section de configuration, ajoutez:
<PropertyGroup Condition="'$(Configuration)' == 'Debug'"> .... <TypeScriptExperimentalDecorators>true</TypeScriptExperimentalDecorators> </PropertyGroup>
sauvegarder et recharger.
Vous pouvez également avoir besoin de TypeScriptEmitDecoratorMetadata pour mapper --emitDecroatorMetadata
Mettez à niveau votre IDE vers la dernière version. Créez ensuite le fichier tsconfig.json à la racine de votre projet si vous n'en avez pas déjà un. Ajoutez ensuite experimentalDecorators
en tant qu'option de compilateur.
Exemple:
{
"version": "1.5.0",
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"declaration": false,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"emitDecoratorMetadata": true,
"sourceMap": true,
"listFiles": true,
"outDir": "dist",
"experimentalDecorators": true
}
}
Dans Visual Studio 2015, vous devez activer TypeScriptExperimentalDecorators
dans votre fichier de projet TypeScript.
Déchargez le fichier de projet puis ajoutez cette ligne:
<TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>
J'ai copié dans le PropertyGroup complet afin que vous puissiez trouver où l'ajouter:
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<TypeScriptRemoveComments>false</TypeScriptRemoveComments>
<TypeScriptSourceMap>true</TypeScriptSourceMap>
<TypeScriptTarget>ES5</TypeScriptTarget>
<TypeScriptJSXEmit>None</TypeScriptJSXEmit>
<TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
<TypeScriptNoImplicitAny>False</TypeScriptNoImplicitAny>
<TypeScriptModuleKind>System</TypeScriptModuleKind>
<TypeScriptOutFile />
<TypeScriptOutDir />
<TypeScriptGeneratesDeclarations>False</TypeScriptGeneratesDeclarations>
<TypeScriptNoEmitOnError>True</TypeScriptNoEmitOnError>
<TypeScriptMapRoot />
<TypeScriptSourceRoot />
<TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>
</PropertyGroup>
J'ai trouvé que je devais ajouter un tag pour les métadonnées
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<!--other -->
<TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>
<TypeScriptEmitDecoratorMetadata>True</TypeScriptEmitDecoratorMetadata>
</PropertyGroup>
J'ai rencontré ce problème aussi.
Rencontré alors que:
Mon environnement est:
Ma solution était:
<TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>
Si vous ne trouvez pas le groupe de propriétés correct dans le fichier csproj ou dans le fichier vous souhaitez que l'environnement VS ajoute automatiquement le groupe de propriétés approprié, puis basculez simplement le bouton "Produire sorties lors de la génération" sous propriétés du projet> Construire, puis exécutez le projet décharger.
À noter ici, je n'ai pas à ce stade de fichier tsconfig.json. Ajouter un fichier tsconfig.json provoque le retour du problème.
Pour résoudre davantage le problème après avoir ajouté un fichier tsconfig.json, j’ai suivi les instructions pour configurer TypeScript avec .NET Core situé ici sous "Installer les typings pour les dépendances" et "Mettre à jour tsconfig.json".
Pour résumer (mais lisez-le vous-même):
"experimentalDecorators": true
à compilerOptions dans le fichier tsconfig.jsonPour le contexte. En plus de cette erreur, je rencontrais également les problèmes suivants:
Les étapes ci-dessus ont résolu l'erreur spécifique ci-dessus pour moi. J'espère que ça aide.
http://www.cmichaelgraham.io/aurelia-TypeScript-samples/vs2015-samples/vs2015-samples.html
<TypeScriptToolsVersion>1.7</TypeScriptToolsVersion>
...........
<TypeScriptAdditionalFlags> $(TypeScriptAdditionalFlags) --emitDecoratorMetadata --experimentalDecorators </TypeScriptAdditionalFlags>
En utilisant simplement Nuget Package Manager, j'ai pu mettre à niveau mon TypeScript à la dernière version et cela a résolu le problème.
Ceci est lié aux conflits de version TypeScript de ce que je peux voir.
Vérifiez votre version de TypeScript et effectuez les mises à niveau ou rétrogradations appropriées pour résoudre le problème.
J'ai eu le même problème. J'ai pas mal de choses à partager avec mes découvertes. Je travaille aussi sur Angular 2 (ng-book-2).
Qu'est-ce que j'utilise?
IDE: WebStorm
TypeScript: 1.6.2
Quand: le 10 octobre 2015
Que suis-je en train de faire?
J'ai essayé de compiler mes applications pour app.js; Cependant, je rencontre cette erreur:
erreur TS5052: l'option 'emitDecoratorMetadata' ne peut pas être spécifiée sans spécifier l'option 'experimentalDecorators'.
C'était mon tsconfig.json AVANT
{
"version": "1.5.0",
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"declaration": false,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"emitDecoratorMetadata": true
},
"filesGlob": [
"./**/*.ts",
"!./node_modules/**/*.ts"
],
"files": [
"./app.ts",
"./typings/angular2/angular2.d.ts",
"./typings/es6-promise/es6-promise.d.ts",
"./typings/rx/rx-lite.d.ts",
"./typings/rx/rx.d.ts",
"./typings/tsd.d.ts"
]
}
Ceci est mon tsconfig.json APR&EGRAVE;S
{
"version": "1.6.2",
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"declaration": false,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true
},
"filesGlob": [
"./**/*.ts",
"!./node_modules/**/*.ts"
],
"files": [
"./app.ts",
"./typings/angular2/angular2.d.ts"
]
}
Changer tsconfig.json d'avant en après résout efficacement deux problèmes. L'un est ce qui précède et l'autre est le problème ci-dessous. Ce dernier problème est discuté ici angular2 avec ES6 ne doit pas faire référence à es6-promise
tapings/es6-promise/es6-promise.d.ts (11,15): erreur TS2300: identificateur en double 'Promise' . tapings/es6-promise/es6-promise.d.ts (42,16): erreur TS2300: identificateur en double 'Promise' . tapings/es6-shim/es6-shim.d.ts (475,11): erreur TS2300: identificateur en double 'Promise' . typings/es6-shim/es6-shim.d.ts (552,13): erreur TS2300: identificateur en double 'Promise'.
Cette erreur m'est venue parce que j'ai essayé par erreur de créer un nouveau fichier avec l'extension ".js" au lieu de ".ts". Il est parti après avoir changé l'extension de fichier en ".ts".
J'ai résolu ce problème en modifiant TypeScriptToolsVersion dans mon fichier csproj afin qu'il corresponde à la version de TypeScript définie dans packages.json (actuellement 2.0.2).
<TypeScriptToolsVersion>2.0.2</TypeScriptToolsVersion>