visual studio code - update - VSCode: ¿Es posible suprimir las advertencias de decorador experimental?
visual studio code bootstrap intellisense (13)
Como señalaron otras respuestas, su código de Visual Studio necesita encontrar el archivo tsconfig.json
.
Yo tuve el mismo problema. Y es principalmente porque no me di cuenta de la estructura del proyecto.
(Sugerencia: lea el texto de arriba a abajo en la imagen a continuación).
-
tsconfig.json
eltsconfig.json
con eltsconfig.app.json
. - Y abrí la carpeta incorrecta en Visual Studio. Como resultado,
tsconfig.json
no estaba en el alcance.
Simplemente al abrir la carpeta raíz correcta (es decir, la carpeta del proyecto, un nivel más alto que el src
.) Resolvió el problema por mí.
En VSCode, aparece el error:
"El soporte experimental para decoradores es una función que está sujeta a cambios en futuras versiones. Especifique ''--experimentalDecorators'' para eliminar esta advertencia".
Puedo agregar el distintivo --experimentalDecorators a mi archivo tasks.json para eliminar este error en la compilación, pero parece que no puedo eliminarlo de mi intellisense o lista de errores cuando cargo VSCode. ¿Hay alguna forma de hacer esto?
Compruebe que ha abierto en su Código VS la carpeta de todo el proyecto y no solo la carpeta src, ya que si abre solo el src, entonces el archivo ts.config.json no estará dentro del alcance, y VS no reconocerá los decoradores experimentales parámetros.
En mi caso esto solucionó todo el problema
En el código de Visual Studio 1.3.1, mi solución está en C: / Archivos de programa (x86) / Microsoft VS Code / resources / app / extensions / typescript / server / typescript / lib / tsserver.js y comenta o elimina la línea.
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);
}
Estaba teniendo el mismo error, lo averiguo, ya que esta era la extensión de archivo del componente como .js, debería ser .ts
Esto me ayudó con los archivos React JS (VSCode Version 1.9.1).
1) Poner en tsconfig.json
:
{
"compilerOptions": {
"experimentalDecorators": true,
"allowJs": true
}
}
2) Reiniciar el código VS.
Nota: como Tim mencionó a continuación, necesita agregar tsconfig.json
incluso si no usa TypeScript.
Fuente: https://ihatetomatoes.net/how-to-remove-experimentaldecorators-warning-in-vscode/
Incluso cuando abre VSCode en el nivel correcto dentro de su proyecto, es posible que aún necesite un archivo tsconfig adicional en su raíz. Ahora tengo un tsconfig en mi raíz del proyecto (que solo contiene el índice y las carpetas de php), la carpeta ts (clases heredadas de mecanografía) y mi carpeta src (componentes vue).
No olvide cerrar la carpeta y reiniciar VSCode.
Luchando con esto en dos proyectos diferentes de lanzamiento final de Angular 2, esta es mi solución.
tsconfig.json en el pliegue src .
{
"compilerOptions": {
"experimentalDecorators": true
}
}
Y
Agregue esta configuración a Archivo-> Preferencias-> Configuración de usuario
"typescript.tsdk": "node_modules//typescript//lib"
Puede hacerlo de la manera más difícil eliminando las líneas que crean el error en %code%/resources/app/plugins/vs.language.typescript/lib/tsserver.lib
.
Busque el siguiente código y elimínelo
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);
}
Puede usar "typescript.tsdk"
en setting.json
para cambiar la ruta específica de la carpeta que contiene los archivos tsserver.js y lib.ts utilizados por VSCode.
Vea este ejemplo: ¿Puedo usar una ruta relativa para configurar el sdk de mecanografía?
nota: Encuentra setting.json
en Archivo> Preferencias> Configuración de usuario.
Si usa Grunt (grunt-ts), también debe agregar " experimentalDecorators: true " como opción en el archivo gruntfile.js .
Su archivo debería verse algo así al final:
module.exports = function(grunt) {
grunt.initConfig({
ts: {
default : {
src: ["**/*.ts", "!node_modules/**"]
},
options: {
experimentalDecorators: true
}
}
});
grunt.loadNpmTasks("grunt-ts");
grunt.registerTask("default", ["ts"]);
};
Para obtener más información, puede leer la documentación en github https://github.com/TypeStrong/grunt-ts#experimentaldecorators
VSC está mirando por defecto su propia biblioteca y definición de TS. Si está utilizando una versión diferente (que es muy probable), debe apuntar a VSC para buscar la definición de esa versión.
En mi archivo settings.json
, tengo la siguiente configuración:
// Place your settings in this file to overwrite default and user settings.
{
"typescript.tsdk": "node_modules//typescript//lib"
}
Creo que puede configurar esto para su Configuración de usuario o su Configuración de área de trabajo. Entonces puede hacer una configuración única en su Configuración de usuario o solo para un proyecto / área de trabajo. Esto funciona si tiene su manuscrito instalado localmente en la carpeta especificada, que creo que es la carpeta predeterminada del módulo de nodos.
Para editar su configuración, vaya a File/Preferences/User Setting
o File/Preference/Workspace Settings
.
ACTUALIZACIÓN: Código de Visual Studio acaba de lanzar una nueva versión con mejor soporte para diferentes versiones de texto mecanografiado. Compruébelo aquí: https://code.visualstudio.com/updates#_languages
Estaba teniendo el mismo error. tsconfig.json
el siguiente archivo tsconfig.json
a mi raíz del proyecto, reinicié VSCode y finalmente desapareció:
{
"compilerOptions": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"module": "amd",
"target": "ES6"
}
}
ACTUALIZAR:
Me he dado cuenta de que, a veces, VS Code no suprimirá esta advertencia hasta que agregue una matriz de "archivos" en su tsconfig.json, incluso una vacía funcionará . Para mí esto ha funcionado todas las veces, si el mensaje no desaparece, intente lo siguiente:
{
"compilerOptions": {
...
},
"files": [],
"exclude": [
"node_modules"
]
}
Quizás esto explique por qué todos tienen resultados mixtos.