Предупреждение экспериментальных декораторов в компиляции машинописного текста



У меня есть




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




даже мои compilerOptions в tsconfig.у json есть настройки:



"emitDecoratorMetadata": true,
"experimentalDecorators": true,


что странно, что некоторые случайные классы, которые используют декораторы не показывают, что предупреждение, но отдых в том же проекте делает.



что может вызвать такое поведение Компилятор машинописного текста?

805   21  

21 ответов:

хотя VS Code-отличный редактор для проектов TypeScript, он нуждается в ударе время от времени. Часто, без предупреждения, некоторые файлы заставляют его волноваться и жаловаться. В основном исправление, кажется, чтобы сохранить и закрыть все открытые файлы, а затем открыть tsconfig.json. После этого вы сможете повторно открыть файл-нарушитель без ошибок. Если это не сработает, вспеньте, промойте и повторите.

Если tsconfig.json заданы исходные файлы с помощью files массив, IntelliSense будет только функция правильно, если файл в вопросе ссылается таким образом, что VS код может найти его, пройдя через дерево входных файлов.

Я должен добавить следующее в параметры.json-файл vscode для удаления предупреждения.

"javascript.implicitProjectConfig.experimentalDecorators": true

VSCode - > Настройки - > Настройки

enter image description here

эта ошибка также возникает при выборе папки "src" для папки рабочего пространства.

когда выбрана корневая папка, папка, в которой находятся "src", "node_modules", ошибка исчезает

добавить typescript.tsdk мой .vscode/settings.json:

"typescript.tsdk": "node_modules/typescript/lib"

внутри вашего проекта создайте файл tsconfig.json, затем добавьте эти строки

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

открыть в папке <project_folder>/.vscode/settings.json

или можно открыть файл из меню, как указано ниже

VSCode -> File -> Preferences -> Workspace Settings

experimentalDecorators settings

затем добавьте следующие строки в settings.json file

{
    "typescript.tsdk": "node_modules/typescript/lib",
    "enable_typescript_language_service": false
}

вот и все. Вы не увидите никаких предупреждений / ошибок относительно 'experimentalDecorators'

этот ответ предназначен для людей, которые используете Javascript, а не Typescript один. Вместо tsconfig.json файл вы можете использовать jsconfig.json.

в частном случае наличия декораторы предупреждение вы хотите писать в файл:

{
    "compilerOptions": {
        "experimentalDecorators": true
    }
}

Fort поведение багги спросил, Это всегда лучше указать "включить" в конфигурационный файл, и перезапустить редактор. Е. Г.

{
    "compilerOptions": {
        "target": "ES6",
        "experimentalDecorators": true
    },
    "include": [
        "app/**/*"
    ],
    "exclude": [
        "node_modules"
    ]
}
"javascript.implicitProjectConfig.experimentalDecorators": true

решит эту проблему.

не вдаваться в подробности, но обязательно добавьте следующее в

  • настройки рабочего пространства не пользовательские настройки

в разделе Файл > > Настройки > > Настройки

"javascript.implicitProjectConfig.experimentalDecorators": true

этот Исправлена проблема для меня, и я попробовал довольно много предложений, которые я нашел здесь и в других местах.

ради ясности и глупости.

1) Открыть .vscode / настройки.формат JSON.

2) Добавить " typescript.tsdk": "node_modules/typescript/lib" на нем.

3) сохранить его.

4) Перезапустите Код Visual Studio.

добавить следующие строки в tsconfig.json и перезапуск против кода.

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

я исправил предупреждение, удалив "baseUrl":"", из tsconfig.файл JSON

откройте папку всего проекта вместо project-name / src

tsconfig.json находится вне папки src

Если вы работаете в Visual studio. Вы можете попробовать это исправить

  1. выгрузите свой проект из visual studio
  2. перейдите в домашний каталог проекта и откройте файл "csproj".
  3. добавить TypeScriptExperimentalDecorators в этот раздел, как показано на рисунке

    enter image description here

    1. перезагрузите проект в Visual studio.

подробнее этой расположение.

  1. Открыть VScode.
  2. нажмите ctrl + запятая
  3. следуйте инструкциям в скриншот
    1. Поиск о experimentalDecorators
    2. редактировать

вы можете столкнуться с этой проблемой, если вы откроете файл TS, который существует за пределами проекта. Например, я использую lerna и открыл файл из другого пакета. Хотя у этого другого пакета был собственный tsconfig с экспериментальными декораторами, VsCode не соблюдает его.

я столкнулась с той же проблемой при создании Injectable услуги в угловой 2. У меня есть все вещи на месте в tsconfig.формат JSON. Тем не менее я получал эту ошибку в ColorsImmutable линии.

@Injectable()
export class ColorsImmutable {

и исправить было зарегистрировать сервис на уровне модуля или компонента использование массива провайдеров.

providers:[ColorsImmutable ],

Я добавил эту опцию в tsconfig.json,"baseUrl": "front-end" замените front-end на имя вашего проекта angular-cli.

Если вы используете CLI для компиляции *.ts файлы, вы можете установить experimentalDecorators с помощью следующей команды:

 tsc filename.ts --experimentalDecorators "true"

пожалуйста, проверьте, что вы oppened в своем коде VS папку всего проекта, а не только папку src, потому что если вы открываете только src, то ts.конфиг.JSON (расположенный в папке проекта) файл не будет находиться в области видимости, и VS не будет распознавать параметры экспериментальных декораторов.

в моем случае это исправило все проблемы, связанные с этой проблемой.

У меня была эта проблема недавно в Visual Studio 2017-оказалось, что это было вызвано "особенностью" VS -игнорируя tsconfig.json, когда действие сборки не установлено в Content.

таким образом, изменение действия сборки на контент и перезагрузка решения решили проблему.

Comments

    Ничего не найдено.