Подтвердить что ты не робот

VSCode: возможно ли подавлять экспериментальные предупреждения декоратора

В VSCode я получаю сообщение об ошибке:

"Экспериментальная поддержка декораторов - это функция, которая может быть изменена в будущей версии. Укажите" --experimentalDecorators ", чтобы удалить это предупреждение.

Я могу добавить флаг -experimentalDecorators в мой файл tasks.json, чтобы удалить эту ошибку при сборке, но я не могу удалить ее из списка intellisense или ошибок при загрузке VSCode. Есть ли способ сделать это?

4b9b3361

Ответ 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.