J'ai
La prise en charge expérimentale des décorateurs est une fonctionnalité susceptible d’être modifiée dans une version ultérieure. Définissez l'option 'experimentalDecorators' pour supprimer cet avertissement.
même mes compilerOptions dans tsconfig.json ont des paramètres:
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
Ce qui est étrange, c'est que certaines classes aléatoires qui utilisent des décorateurs ne montrent pas cet avertissement mais restent dans le même projet.
Qu'est-ce qui pourrait causer un tel comportement du compilateur TypeScript?
Bien que VS Code soit un excellent éditeur pour les projets TypeScript, il doit être relancé de temps en temps. Souvent, sans préavis, certains fichiers le font paniquer et se plaindre. Généralement, le correctif semble consister à enregistrer et à fermer tous les fichiers ouverts, puis à ouvrir tsconfig.json
. Après cela, vous devriez pouvoir rouvrir le fichier incriminé sans erreur. Si cela ne fonctionne pas, faites mousser, rincez et répétez.
Si votre tsconfig.json
spécifie ses fichiers source à l'aide du tableau files
, IntelliSense ne fonctionnera correctement que si le fichier en question est référencé de sorte que VS Code puisse le trouver en parcourant l'arborescence du fichier d'entrée.
Edit: La commande 'reload window' (ajoutée il y a bien longtemps maintenant) devrait résoudre ce problème une fois pour toutes.
Cette erreur se produit également lorsque vous choisissez le dossier "src" pour votre dossier d'espace de travail.
Lorsque le dossier racine, dossier dans lequel se trouvent "src", "node_modules", l'erreur disparaît
ajouter TypeScript.tsdk
à mon .vscode/settings.json
:
"TypeScript.tsdk": "node_modules/TypeScript/lib"
dans votre projet, créez le fichier tsconfig.json, puis ajoutez ces lignes.
{
"compilerOptions": {
"experimentalDecorators": true,
"allowJs": true
}
}
"javascript.implicitProjectConfig.experimentalDecorators": true
Va résoudre ce problème.
Cette réponse est destinée aux personnes utilisant un projet Javascript et non un projet TypeScript. Au lieu d'un fichier tsconfig.json, vous pouvez utiliser un fichier jsconfig.json.
Dans le cas particulier où le décorateurs vous avertit que vous souhaitez écrire dans le fichier:
{
"compilerOptions": {
"experimentalDecorators": true
}
}
En ce qui concerne les comportements bogués, il est toujours préférable de spécifier "inclure" dans le fichier de configuration et de redémarrer l'éditeur. Par exemple.
{
"compilerOptions": {
"target": "ES6",
"experimentalDecorators": true
},
"include": [
"app/**/*"
],
"exclude": [
"node_modules"
]
}
Ouvrez le fichier settings.json
à l’emplacement suivant <project_folder>/.vscode/settings.json
ou vous pouvez ouvrir le fichier depuis le menu comme mentionné ci-dessous
VSCode -> File -> Preferences -> Workspace Settings
Puis ajoutez les lignes suivantes dans le fichier settings.json
{
"TypeScript.tsdk": "node_modules/TypeScript/lib",
"enable_TypeScript_language_service": false
}
C'est tout. Vous ne verrez aucun avertissement/erreur concernant ' experimentalDecorators '
Ajoutez les lignes suivantes dans tsconfig.json et redémarrez VS Code.
{
"compilerOptions": {
"experimentalDecorators": true,
"target": "es5",
"allowJs": true
}
}
J'ai eu ce problème récemment sous Visual Studio 2017 - il s'est avéré que cela était dû à une "fonctionnalité" de VS - en ignorant tsconfig.json lorsque l'action de génération n'est pas définie sur Conten .
Donc, changer l’action Construire en Contenu et recharger la solution a résolu le problème.
Ne pas insister sur le point, mais assurez-vous d’ajouter ce qui suit à
sous Fichier >> Préférences >> Paramètres
"javascript.implicitProjectConfig.experimentalDecorators": true
cela a résolu le problème pour moi et j'ai essayé quelques suggestions que j'ai trouvées ici et à d'autres endroits.
Par souci de clarté et de stupidité.
1) Ouvrez .vscode/settings.json.
2) Ajoutez "TypeScript.tsdk": "node_modules/TypeScript/lib" dessus.
3) Enregistrez-le.
4) Redémarrez le code Visual Studio.
Vérifiez que vous avez ouvert dans votre code VS le dossier de l'ensemble du projet et pas uniquement le dossier src, car si vous ouvrez uniquement le fichier src, le fichier ts.config.json (situé dans le dossier du projet) ne sera pas dans la portée et VS ne reconnaîtra pas les paramètres des décorateurs expérimentaux.
Dans mon cas, cela corrigeait tous les problèmes liés à ce problème.
Si vous utilisez cli pour compiler des fichiers * .ts, vous pouvez définir experimentalDecorators à l'aide de la commande suivante:
tsc filename.ts --experimentalDecorators "true"
Si vous travaillez dans Visual studio. Vous pouvez essayer ce correctif
Ajoutez TypeScriptExperimentalDecorators à cette section, comme indiqué dans l'image
voir plus de détails sur this location.
Ouvrir le dossier du projet entier au lieu de nom-projet/src
tsconfig.json est hors du dossier src
J'ai corrigé l'avertissement en supprimant "baseUrl": "" du fichier tsconfig.json
J'ai fait face au même problème lors de la création d'un Injectable Services dans Angular 2. J'ai toutes les choses en place dans tsconfig.json. Je n'ai toujours pas eu cette erreur à la ligne ColorsImmutable.
@Injectable()
export class ColorsImmutable {
Et le correctif consistait à enregistrer le service au niveau du module ou au niveau du composant à l'aide du tableau providers.
providers:[ColorsImmutable ],
Vous pouvez également essayer avec ng build
. Je viens de reconstruire l'application et maintenant, elle n'est pas conforme.
J'ai ajouté cette option à tsconfig.json, "baseUrl": "front-end"
. Remplacez front-end par le nom de votre projet angular-cli.
Vous pouvez rencontrer ce problème si vous ouvrez un fichier TS qui existe en dehors du projet. Par exemple, j'utilise Lerna et j'avais un fichier ouvert depuis un autre paquet. Bien que cet autre paquet ait son propre tsconfig avec des décorateurs expérimentaux, VsCode ne l'honore pas.