Предупреждение экспериментальных декораторов в компиляции TypeScript
У меня
Экспериментальная поддержка декораторов - это функция, которая может быть изменена в будущей версии. Установите опцию "experimentalDecorators" для удаления этого предупреждения.
даже мои компиляторыОпции в tsconfig.json имеют настройки:
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
Странно, что некоторые случайные классы, которые используют декораторы, не показывают этого предупреждения, но остаются в том же проекте.
Что может вызвать такое поведение компилятора TypeScript?
Ответы
Ответ 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
}
}
Ответ 12
Недавно у меня была эта проблема в Visual Studio 2017 - оказалось, что она была вызвана "функцией" VS - игнорированием tsconfig.json, когда для действия Build не установлено Content.
Таким образом, изменение действия Build на Content и перезагрузка решения решили проблему.
Ответ 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
- Откройте VScode.
- Нажмите Ctrl + запятая
- Следуйте инструкциям на снимке экрана
- Поиск об экспериментальных декораторах
- Редактировать это
Ответ 16
Если вы используете cli для компиляции файлов *.ts, вы можете установить Экспериментальные Декораторы, используя следующую команду:
tsc filename.ts --experimentalDecorators "true"
Ответ 17
Откройте всю папку проекта вместо имени-проекта/src
tsconfig.json находится вне папки src
Ответ 18
Если вы работаете в Visual Studio. Вы можете попробовать это исправить
- Выгрузите ваш проект из визуальной студии
- Перейдите в домашний каталог вашего проекта и откройте файл "csproj".
-
Добавьте TypeScriptExperimentalDecorators в этот раздел, как показано на рисунке
![enter image description here]()
- Перезагрузите проект в 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]()