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

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

У меня

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

даже мои компиляторыОпции в tsconfig.json имеют настройки:

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

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

Что может вызвать такое поведение компилятора TypeScript?

4b9b3361

Ответ 1

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

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

Редактировать: команда 'reload window' (добавлена много лет назад) должна решить эту проблему раз и навсегда.

Ответ 2

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

"javascript.implicitProjectConfig.experimentalDecorators": true

VSCode → Настройки → Настройки

enter image description here

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

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

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

Ответ 6

Файл → Настройки → Настройки

Ответ 7

"javascript.implicitProjectConfig.experimentalDecorators": true

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

Ответ 8

Откройте settings.json файл в следующем месте <project_folder>/.vscode/settings.json

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

VSCode -> File -> Preferences -> Workspace Settings

experimentalDecorators settings

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

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

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

Ответ 9

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

В частном случае, когда вы указали декораторы, которые вы хотите записать внутри файла:

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

Форт бэгги поведения спросил, всегда лучше указать "включить" в файле конфигурации и перезапустить редактор. Например.

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

Ответ 10

Не для того, чтобы понять смысл, но обязательно добавить следующее к

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

под Файл >> Настройки >> Настройки

"javascript.implicitProjectConfig.experimentalDecorators": правда

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

Ответ 11

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

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

Ответ 13

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

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

Ответ 14

Для ясности и глупости.

1) Откройте .vscode/settings.json.

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

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

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

Ответ 15

  1. Откройте VScode.
  2. Нажмите Ctrl + запятая
  3. Следуйте инструкциям на снимке экрана
    1. Поиск об экспериментальных декораторах
    2. Редактировать это

Ответ 16

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

 tsc filename.ts --experimentalDecorators "true"

Ответ 17

Откройте всю папку проекта вместо имени-проекта/src

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

Ответ 18

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

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

    enter image description here

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

увидеть более подробную информацию в этом месте.

Ответ 19

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

Ответ 20

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

Ответ 21

Я столкнулся с такой же проблемой при создании Injectable Services в Angular 2. У меня все есть на месте в tsconfig.json. Пока я получал эту ошибку в строке ColorsImmutable.

@Injectable()
export class ColorsImmutable {

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

providers:[ColorsImmutable ],

Ответ 22

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

Ответ 23

Вы также можете попробовать с помощью ng build. Я только что перестроил приложение и теперь оно не соответствует.

Ответ 24

В Visual Code Studio Перейти к Файл >> Настройки >> Настройки Проверьте опцию как на картинке. enter image description here