Предупреждение экспериментальных декораторов в компиляции машинописного текста
У меня есть
экспериментальная поддержка декораторов-это функция, которая может быть изменена в будущем выпуске. Установите параметр "experimentalDecorators", чтобы удалить это предупреждение.
даже мои compilerOptions в tsconfig.у json есть настройки:
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
что странно, что некоторые случайные классы, которые используют декораторы не показывают, что предупреждение, но отдых в том же проекте делает.
что может вызвать такое поведение Компилятор машинописного текста?
21 ответов:
хотя VS Code-отличный редактор для проектов TypeScript, он нуждается в ударе время от времени. Часто, без предупреждения, некоторые файлы заставляют его волноваться и жаловаться. В основном исправление, кажется, чтобы сохранить и закрыть все открытые файлы, а затем открыть
tsconfig.json. После этого вы сможете повторно открыть файл-нарушитель без ошибок. Если это не сработает, вспеньте, промойте и повторите.Если
tsconfig.jsonзаданы исходные файлы с помощьюfilesмассив, IntelliSense будет только функция правильно, если файл в вопросе ссылается таким образом, что VS код может найти его, пройдя через дерево входных файлов.
эта ошибка также возникает при выборе папки "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затем добавьте следующие строки в
settings.jsonfile{ "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
этот Исправлена проблема для меня, и я попробовал довольно много предложений, которые я нашел здесь и в других местах.
ради ясности и глупости.
1) Открыть .vscode / настройки.формат JSON.
2) Добавить " typescript.tsdk": "node_modules/typescript/lib" на нем.
3) сохранить его.
4) Перезапустите Код Visual Studio.
добавить следующие строки в tsconfig.json и перезапуск против кода.
{ "compilerOptions": { "experimentalDecorators": true, "target": "es5", "allowJs": true } }
Если вы работаете в Visual studio. Вы можете попробовать это исправить
- выгрузите свой проект из visual studio
- перейдите в домашний каталог проекта и откройте файл "csproj".
добавить TypeScriptExperimentalDecorators в этот раздел, как показано на рисунке
- перезагрузите проект в Visual studio.
подробнее этой расположение.
- Открыть VScode.
- нажмите ctrl + запятая
- следуйте инструкциям в скриншот
- Поиск о experimentalDecorators
- редактировать
вы можете столкнуться с этой проблемой, если вы откроете файл 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