VSCode: возможно ли подавлять экспериментальные предупреждения декоратора
В VSCode я получаю сообщение об ошибке:
"Экспериментальная поддержка декораторов - это функция, которая может быть изменена в будущей версии. Укажите" --experimentalDecorators ", чтобы удалить это предупреждение.
Я могу добавить флаг -experimentalDecorators в мой файл tasks.json, чтобы удалить эту ошибку при сборке, но я не могу удалить ее из списка intellisense или ошибок при загрузке VSCode. Есть ли способ сделать это?
Ответы
Ответ 1
У меня была такая же ошибка. Я добавил следующий файл tsconfig.json
в свой корневой каталог проекта, перезапустил VSCode и, наконец, ушел:
{
"compilerOptions": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"module": "amd",
"target": "ES6"
}
}
UPDATE:
Я заметил, что иногда VS Code не будет подавлять это предупреждение, пока вы не добавите массив файлов в ваш tsconfig.json, , даже пустой будет работать. Для меня это работало каждый раз, если сообщение не исчезает, попробуйте следующее:
{
"compilerOptions": {
...
},
"files": [],
"exclude": [
"node_modules"
]
}
Возможно, это объяснит, почему все имеют смешанные результаты?
Ответ 2
VSC по умолчанию рассматривает свою собственную библиотеку и определение TS. Если вы используете другую версию (что очень вероятно), вы должны указать VSC для поиска определения этой версии.
В моем файле settings.json
у меня есть следующая настройка:
// Place your settings in this file to overwrite default and user settings.
{
"typescript.tsdk": "node_modules\\typescript\\lib"
}
Я считаю, что вы можете установить это для своих пользовательских настроек или настроек рабочей области. Таким образом, вы можете сделать одноразовую конфигурацию в настройках пользователя или только для одного проекта/рабочей области. Это работает, если у вас установлен typescript локально в указанной папке, который, я считаю, является папкой модуля узлов по умолчанию.
Чтобы изменить настройки, перейдите к File/Preferences/User Setting
или File/Preference/Workspace Settings
.
UPDATE: Visual Studio Code только что выпустила новую версию с лучшей поддержкой для разных версий typescript. Посмотрите здесь: https://code.visualstudio.com/updates#_languages
Ответ 3
Вы можете сделать это сложным путем, удалив строки, которые создают ошибку в %code%\resources\app\plugins\vs.language.typescript\lib\tsserver.lib
.
Найдите следующий код и удалите его
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);
}
Ответ 4
Вы можете использовать "typescript.tsdk"
в setting.json
, чтобы изменить путь к конкретной папке, содержащий файлы tsserver.js и lib.ts, используемые VSCode.
Смотрите этот пример: Могу ли я использовать относительный путь для настройки typescript sdk?
Примечание. Вы найдете setting.json
в меню "Файл" > "Настройки" > "Пользовательские настройки".
Ответ 5
Борясь с этим через два разных проекта Angular 2 final release, это мое решение.
tsconfig.json в папке src.
{
"compilerOptions": {
"experimentalDecorators": true
}
}
И
Добавьте этот параметр в Файл- > Настройки- > Настройки пользователя
"typescript.tsdk": "node_modules\\typescript\\lib"
Ответ 6
Если вы используете Grunt (grunt-ts), вы также должны добавить " experimentalDecorators: true" в качестве параметра в файле gruntfile.js.
В конце ваш файл должен выглядеть примерно так:
module.exports = function(grunt) {
grunt.initConfig({
ts: {
default : {
src: ["**/*.ts", "!node_modules/**"]
},
options: {
experimentalDecorators: true
}
}
});
grunt.loadNpmTasks("grunt-ts");
grunt.registerTask("default", ["ts"]);
};
Для получения дополнительной информации вы можете прочитать документацию по github https://github.com/TypeStrong/grunt-ts#experimentaldecorators
Ответ 7
В код Visual Studio 1.3.1 мое исправление находится в C:\Program Files (x86)\Microsoft VS Code\resources\app\extensions\typescript\server\typescript\lib\tsserver.js и закомментируйте или удалите строку.
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);
}
Ответ 8
Это помогло мне с файлами React JS (версия VSIode 1.9.1).
1) Поместите в tsconfig.json
:
{
"compilerOptions": {
"experimentalDecorators": true,
"allowJs": true
}
}
2) Перезапустите код VS.
Примечание., как указано ниже, вам нужно добавить tsconfig.json
, даже если вы не используете TypeScript.
Источник: https://ihatetomatoes.net/how-to-remove-experimentaldecorators-warning-in-vscode/
Ответ 9
Как указывалось в других ответах, ваш код Visual Studio должен найти файл tsconfig.json
.
У меня была та же проблема. И это в основном потому, что я не понимал структуру проекта.
(Подсказка: прочитайте текст сверху вниз на рисунке ниже).
![Решение]()
- Я смутил
tsconfig.json
с помощью tsconfig.app.json
.
- И я открыл неправильную папку в Visual Studio. В результате
tsconfig.json
не был в области.
Просто открыв правую корневую папку (т.е. папку проекта, на один уровень выше, чем src
.), решила проблему для меня.
Ответ 10
У меня была такая же ошибка, я понимаю, что это было расширение имени файла имени, как .js, оно должно быть .ts
Ответ 11
Даже при открытии VSCode на нужном уровне в вашем проекте вам может понадобиться дополнительный файл tsconfig в вашем корне. Теперь у меня есть tsconfig в корне моего проекта (только с индексом и папками php), папкой ts (legacy typescript) и моей папкой src (компоненты vue).
Не забудьте закрыть папку и перезапустить VSCode.