web-dev-qa-db-fra.com

VSCode: est-il possible de supprimer les avertissements du décorateur expérimental

Dans VSCode, j'obtiens l'erreur:

"La prise en charge expérimentale des décorateurs est une fonctionnalité susceptible d'être modifiée dans une future version. Spécifiez '--experimentalDecorators' pour supprimer cet avertissement."

Je peux ajouter l'indicateur --experimentalDecorators à mon fichier tasks.json pour supprimer cette erreur lors de la génération, mais je n'arrive pas à le supprimer de ma liste d'intellisense ou d'erreur lorsque je charge VSCode. Y a-t-il un moyen de faire cela?

35
bingles

J'avais cette même erreur. J'ai ajouté ce qui suit tsconfig.json fichier à la racine de mon projet, redémarré VSCode et il est finalement parti:

{
    "compilerOptions": {
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "module": "AMD",
        "target": "ES6" 
    }
}

MISE À JOUR:

J'ai remarqué que parfois VS Code ne supprimera pas cet avertissement jusqu'à ce que vous ajoutiez un tableau "files" dans votre tsconfig.json, même un vide fonctionnera. Pour moi, cela a fonctionné à chaque fois maintenant, si le message ne disparaît pas, essayez ce qui suit:

{
    "compilerOptions": {
        ... 
    },
    "files": [],
    "exclude": [
        "node_modules"
    ]
}

Peut-être que cela expliquera pourquoi tout le monde a des résultats mitigés?

42
Felipe

VSC examine par défaut sa propre bibliothèque TS et sa propre définition. Si vous utilisez une version différente (ce qui est très probable), vous devez pointer VSC pour rechercher cette définition de versions.

Dans mon settings.json fichier, j'ai la configuration suivante:

// Place your settings in this file to overwrite default and user settings.
{
    "TypeScript.tsdk": "node_modules\\TypeScript\\lib"

}

Je pense que vous pouvez définir cela pour vos paramètres utilisateur ou vos paramètres d'espace de travail. Vous pouvez donc effectuer une configuration unique dans vos paramètres utilisateur ou simplement pour un projet/espace de travail. Cela fonctionne si votre TypeScript est installé localement dans le dossier spécifié - qui, je crois, est le dossier du module de nœuds par défaut.

Pour modifier vos paramètres, accédez à File/Preferences/User Setting ou File/Preference/Workspace Settings.

MISE À JOUR: Visual Studio Code vient de publier une nouvelle version avec un meilleur support pour différentes versions de TypeScript. Vérifiez-le ici: https://code.visualstudio.com/updates#_languages

29

Je dois ajouter ce qui suit dans le fichier settings.json de vscode pour supprimer l'avertissement.

"javascript.implicitProjectConfig.experimentalDecorators": true

VSCode -> Préférences -> Paramètres

enter image description here

14
Manoj Paul

Vous pouvez le faire à la dure en supprimant les lignes qui créent l'erreur dans %code%\resources\app\plugins\vs.language.TypeScript\lib\tsserver.lib.

Recherchez le code suivant et supprimez-le

            if (!compilerOptions.experimentalDecorators) {
              error(node, ts.Diagnostics.Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Specify_experimentalDecorators_to_remove_this_warning);
            }
12
Wosi

Luttant avec cela sur deux différents projets Angular 2 versions finales, voici ma solution.

tsconfig.json dans le pli src.

{
    "compilerOptions": {

        "experimentalDecorators": true

    }
} 

ET

Ajoutez ce paramètre à Fichier-> Préférences-> Paramètres utilisateur

"TypeScript.tsdk": "node_modules\\TypeScript\\lib"
6
Sydwell

Comme d'autres réponses l'ont souligné, votre code Visual Studio doit trouver le tsconfig.json fichier.

J'ai eu le même problème. Et c'est surtout parce que je n'ai pas réalisé la structure du projet.

(Astuce: Lisez le texte de haut en bas dans l'image ci-dessous).

Solution

  1. J'avais confondu le tsconfig.json avec le tsconfig.app.json.
  2. Et j'avais ouvert le mauvais dossier dans Visual Studio. Par conséquent, le tsconfig.json n'était pas dans le champ d'application.

Le simple fait d'ouvrir le dossier racine de droite (c'est-à-dire le dossier de projet, un niveau supérieur à src.) A résolu le problème pour moi.

5
bvdb

Cela m'a aidé avec React fichiers JS (VSCode version 1.9.1).

1) Mettez dans tsconfig.json:

{
    "compilerOptions": {
        "experimentalDecorators": true,
        "allowJs": true
    }
}

2) Redémarrez VS Code.

Remarque: comme Tim mentionné ci-dessous, vous devez ajouter le tsconfig.json même si vous n'utilisez pas TypeScript.

Source: https://ihatetomatoes.net/how-to-remove-experimentaldecorators-warning-in-vscode/

3
mario1ua

Vous pouvez utiliser "TypeScript.tsdk" dans setting.json pour modifier le chemin de dossier spécifique contenant les fichiers tsserver.js et lib.ts utilisés par VSCode.

Voir cet exemple: Puis-je utiliser un chemin relatif pour configurer le sdk TypeScript?

remarque: vous trouvez setting.json dans Fichier> Préférences> Paramètres utilisateur.

3
Abraão Alves

Si vous utilisez Grunt (grunt-ts), vous devez également ajouter " experimentalDecorators: true " comme option dans le fichier gruntfile.js .

Votre fichier devrait ressembler à ceci à la fin:

module.exports = function(grunt) {
  grunt.initConfig({
    ts: {
      default : {
        src: ["**/*.ts", "!node_modules/**"]
      },
      options: {
        experimentalDecorators: true
      }
    }
  });
  grunt.loadNpmTasks("grunt-ts");
  grunt.registerTask("default", ["ts"]);
};

Pour plus d'informations, vous pouvez lire la documentation sur github https://github.com/TypeStrong/grunt-ts#experimentaldecorators

2
Cedriga

Dans Visual studio code 1.3.1 mon correctif est dans C:\Program Files (x86)\Microsoft VS Code\resources\app\extensions\TypeScript\server\TypeScript\lib\tsserver .js et commentez ou supprimez la ligne.

if (!compilerOptions.experimentalDecorators) {
     error(node, ts.Diagnostics.Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Specify_experimentalDecorators_to_remove_this_warning);
}
2
jmvtrinidad

Même lorsque vous ouvrez VSCode au bon niveau dans votre projet, vous pourriez avoir besoin d'un fichier tsconfig supplémentaire dans votre racine. J'ai maintenant un tsconfig dans la racine de mon projet (contenant uniquement l'index php et les dossiers), le dossier ts (anciennes classes TypeScript) et mon dossier src (composants vue).

N'oubliez pas de fermer le dossier et de redémarrer VSCode.

1
Huupke

J'avais la même erreur que je l'ai compris car c'était l'extension de fichier du composant i name .js, elle devrait être .ts

1
AHSAN KHAN

Veuillez vérifier que vous avez ouvert dans votre code VS le dossier de l'ensemble du projet et pas seulement le dossier src, car si vous ouvrez uniquement le src, le fichier ts.config.json ne sera pas dans la portée et VS ne reconnaîtra pas les décorateurs expérimentaux paramètres.

Dans mon cas, cela a résolu tout le problème

1
dayanrr91