装饰器的实验支持是一项功能,在将来的版本中可能会更改。设置'experimentalDecorators'选项`以消除此警告。即使我的tsconfig.json中的editorOptions具有以下设置,也是如此:
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
奇怪的是,一些使用修饰符的随机类没有显示警告,而同一项目中的其余类却显示警告。
在TypeScript编译器中可能导致这种行为的原因是什么?
#1 楼
尽管VS Code是TypeScript项目的出色编辑器,但它需要时不时地发挥作用。通常,某些文件会在没有警告的情况下吓跑并抱怨。通常,解决方法似乎是保存并关闭所有打开的文件,然后打开tsconfig.json
。之后,您应该可以重新打开有问题的文件,而不会出现错误。如果它不起作用,则起泡沫,冲洗并重复。如果您的
tsconfig.json
使用files
数组指定了其源文件,则只有在引用了相关文件(例如VS Code)的情况下,IntelliSense才能正常运行。可以通过遍历输入文件树来找到它。编辑:“重新加载窗口”命令(现在已经有很长的历史了)应该可以彻底解决此问题。
评论
谢谢-从tsconfig.json中删除“文件”可解决问题
– Bensiu
16年7月11日在14:35
答案与我的案子并没有真正的关系,但以某种方式帮助我弄清了我的问题。我正在使用VS 2015,并且在更改xproj和tsconfig文件之间,我错过了一个事实,即包含我的脚本文件的文件夹已列在tsconfig的排除部分中。希望这对某人有帮助。
– Stefan Balan
16-09-3在18:10
文件>关闭文件夹>打开文件夹对我有用。在没有正确关闭vscode的情况下重新启动计算机后,发生了这种情况。
– Adrian Moisa
17 Mar 24 '17 12:28
如果我不使用打字稿怎么办?只有JavaScript ES6?
– DDD
17-4-22在22:17
我不确定何时添加它,但是命令调色板现在具有“重新加载窗口”,这对于此类事情非常理想。
–编码器
17年8月7日在6:46
#2 楼
我必须在vscode的settings.json文件中添加以下内容,以删除警告。 "javascript.implicitProjectConfig.experimentalDecorators": true
VSCode->首选项->设置
更新
正如Clepsyd所指出的,此设置已被弃用。您需要立即使用
"js/ts.implicitProjectConfig.experimentalDecorators":true
评论
非常感谢。我正在使用es6 + decorators,但尚未安装打字稿。太棒了
– Akhmedzianov Danilian
18年1月18日在11:56
这个答案是最好的,因为不需要在项目中创建单独的文件来解决VSCode问题。
–rodrigocfd
18-3-14的3:22
ctrl +,用于打开用户设置的快捷键。在用户设置上单击3个点(...),然后在弹出窗口上单击打开settings.json以打开settings.json
– Suhailvs
18-10-3在9:37
非常感谢。很有帮助。
–an0nh4x0r
20年6月15日在10:40
此设置已被弃用。您现在应该使用:“ js / ts.implicitProjectConfig.experimentalDecorators”:true
–倒闭
20 Dec 15'在15:45
#3 楼
当您为工作区文件夹选择“ src”文件夹时,也会发生此错误。选择根文件夹,“ src”,“ node_modules”所在的文件夹后,错误消失
评论
来到这里发布这个。这为我解决了。我通过Angular CLI使用Angular 2。
–异步
17年6月30日在12:17
如果以上内容无法理解:Vscode必须加载配置文件知道的文件夹。如果您想进一步加载文件夹,我想您可以编写一个新的配置文件,该文件在该文件夹及以下的文件夹中均有效。
–LosManos
20 Mar 16 '20 at 13:14
就是这样谢谢 :)
–卡米尔
20年6月19日在6:49
#4 楼
文件->首选项->设置评论
对我来说,此问题出现在1.37版上,您的解决方案已解决。
–斯蒂芬(Stephane)
19年8月10日在20:08
1.转到文件->首选项->设置。 2.搜索“ experimentalDecorators”。3.选中“启用/禁用experimentalDecorators”。4.按Ctrl + S保存设置。
–赛义德·纳西尔·阿巴斯(Syed Nasir Abbas)
20年7月14日在18:54
#5 楼
请按照以下步骤删除此警告消息。步骤1:
转到IDE中的设置,然后查找或搜索experimentalDecorators。
步骤2:然后单击复选框,警告已在您的页面中删除。
谢谢您编码愉快..........
评论
谢谢我的g = D
–亚历杭德罗·卡瓦哈尔·萨里亚(Alejandro Carvajal Sarria)
20-09-29在23:39
谢谢,这很简单
– Sagar Khatri
20 Dec 16'在14:45
#6 楼
在您的项目中,创建文件tsconfig.json,然后添加以下行{
"compilerOptions": {
"experimentalDecorators": true,
"allowJs": true
}
}
#7 楼
在VSCode中,转到File => Preferences => Settings(或Control +逗号),它将打开User Settings文件。搜索“ javascript.implicitProjectConfig.experimentalDecorators”:true,然后选中该文件中的experimentalDecorators复选框,它应该对其进行修复。它对我有用。
#8 楼
必须将typescript.tsdk
添加到我的.vscode/settings.json
中:"typescript.tsdk": "node_modules/typescript/lib"
评论
这为我解决了这个问题,但按照这一行将其放入.vscode / settings.json
– Fran Rodriguez
16-09-20在16:42
也为我解决了这个问题,但是我没有.vscode文件夹(我不知道为什么-我是一个后端开发人员,别管我!),所以我在根文件夹中创建了一个带有settings.json的文件文件。
–年龄
17年5月10日在6:13
谢谢!!您到底是怎么知道的?
– raphisama
20 Jul 17'3:48
#9 楼
对我来说,此错误“对装饰器的实验性支持是一个功能,在将来的版本中可能会更改。(等)”仅在Angular项目的VS Code中并且仅在创建新Service时发生。解决方案上方:“在Visual Code Studio中,转到“文件>>首选项>>设置,在搜索字段中搜索”装饰器”,然后检查选项JavaScript›隐式项目配置:实验装饰器”解决了该问题。
也停止了ng在终端窗口中投放并重新启动它,使错误在重新编译后消失。
评论
哇,我的确切情况非常罕见。感谢分享!
–亚伦·乔丹
20年7月1日在21:18
#10 楼
在Visual Code Studio中,转到“文件>>首选项>>设置”,在搜索字段中搜索“装饰器”,然后检查图像中的选项。#11 楼
"javascript.implicitProjectConfig.experimentalDecorators": true
将解决此问题。
评论
@nadya:settings.json(用户或工作区)。您也可以使用gui设置,因为此答案确实如此
–弗兰克·诺克(Frank Nocke)
19年12月12日12:00
#12 楼
在以下位置打开settings.json
文件,或者您可以从菜单中打开文件,如下所述。
<project_folder>/.vscode/settings.json
然后在
VSCode -> File -> Preferences -> Workspace Settings
文件中添加以下行{
"typescript.tsdk": "node_modules/typescript/lib",
"enable_typescript_language_service": false
}
就这样。您不会看到有关'experimentalDecorators'的警告/错误
评论
使用vscode 1.8.1添加“ enable_typescript_language_service”后,出现“未知配置设置”
–chub
17年1月22日在12:35
如果您的项目使用Typescript,这是可怕的建议!
–paulsm4
19年1月3日,17:22
禁用“ enable_typescript_language_service”将有效地关闭任何实时的TypeScript产品,请避免该建议。
–杰西
19年11月14日在15:23
这对我有用。有关更多信息,请参见以下链接。 ihatetomatoes.net/…
–饶
20 Dec 25'12:02
#13 楼
此答案适用于使用Javascript项目而不是Typescript项目的人员。可以使用jsconfig.json文件代替tsconfig.json文件。在有装饰器警告您要在文件内部写入的特定情况下: br />
要防止出现越野车行为,最好在配置文件中指定“ include”,然后重新启动编辑器。例如
{
"compilerOptions": {
"experimentalDecorators": true
}
}
评论
以防万一,无论使用哪种语言,请务必将正在使用的文件包含在“ include”中,例如“ app / * / *。ts”或“ app / * / *。js”等,这一点很重要。我的问题。
–敬畏
20年7月19日在7:15
#14 楼
在tsconfig.json中添加以下行,然后重新启动VS Code。{
"compilerOptions": {
"experimentalDecorators": true,
"target": "es5",
"allowJs": true
}
}
评论
重新启动对我来说是关键。谢谢。
– rynop
19年1月10日在5:34
#15 楼
不要太着急,但请确保在文件>>首选项>>设置下将以下内容添加到工作区设置而非用户设置
“ javascript.implicitProjectConfig.experimentalDecorators”:正确
这为我解决了这个问题,我尝试了很多在这里和其他地方找到的建议。
#16 楼
我最近在Visual Studio 2017下遇到了这个问题-原来是由VS的“功能”引起的-当Build操作未设置为Content时忽略了tsconfig.json。因此将Build操作更改为内容并重新加载解决方案即可解决问题。
#17 楼
使用@Injectable({
providedIn: 'root'
})
警告一直持续到我引用项目中某处的新服务。一旦使用该服务,警告就会消失。无需更改打字稿配置或vscode设置。
#18 楼
为了清晰和愚蠢起见。1)打开.vscode / settings.json。
2)添加“ typescript.tsdk”:“ node_modules / typescript / lib”
3)保存。
4)重新启动Visual Studio代码。
#19 楼
如果您使用cli来编译* .ts文件,则可以使用以下命令来设置experimentalDecorators: tsc filename.ts --experimentalDecorators "true"
评论
谢谢,这保存了我的沮丧。我具有与发问者相同的设置,但是我使用的是Sublime Text 3,事实证明您的解决方案是有帮助的!
–烦人的吉普
19年4月12日在13:16
#20 楼
如果您在Visual Studio中工作。您可以尝试此修复程序从Visual Studio中卸载项目
转到项目主目录并打开“ csproj”文件。
将TypeScriptExperimentalDecorators添加到本节中,如图所示。
在Visual Studio中重新加载项目。
在此位置查看更多详细信息。
#21 楼
打开VScode。
按ctrl +逗号
按照屏幕快照中的说明进行操作
搜索
实验装饰器
进行编辑
/>
#22 楼
请检查是否在VS Code中选择了整个项目的文件夹,而不仅仅是src文件夹,因为如果仅打开src,则ts.config.json(位于项目文件夹中)文件将不在范围内,并且VS无法识别实验装饰器参数。在我看来,这解决了与此问题有关的所有问题。
评论
这也是我的问题。可以看到node_modules吗?可以看到tsconfig.json吗?如果不是,请打开一个新的vsCode窗口,关闭旧窗口,选择file-> open folder,并确保选择src和node_modules的父文件夹,而不是仅选择src。
–凯尔·瓦塞拉(Kyle Vassella)
19年2月13日在23:40
#23 楼
在Angular 2中创建可注射服务时遇到了相同的问题。我在tsconfig.json中放置了所有内容。仍然在ColorsImmutable行遇到此错误。
@Injectable()
export class ColorsImmutable {
解决方法是使用providers数组在模块级别或组件级别注册服务。
providers:[ColorsImmutable ],
#24 楼
打开整个项目的文件夹而不是项目名称/ srctsconfig.json不在src文件夹中
#25 楼
我在以下声明中遇到此错误对装饰器的实验支持是一项功能,在将来的发行版中可能会更改。在tsconfig或jsconfig中设置'experimentalDecorators'选项以删除此警告。ts(1219)
因为我的组件未在AppModule或(app.module.ts)中注册,所以我只是给出了像
从{../app/abc/abc.component'导入{abcComponent}的名称空间;
并在声明中将其注册
评论
创建包含“ @Injectable()导出类MyService {}”的新文件后,出现完全相同的错误。没有添加到AppModule(ng10)的内容
– Wolf359
20年7月18日在18:23
我遇到过同样的问题
–托马斯·马丁(Thomas Martin)
20年8月27日在16:52
#26 楼
我通过从tsconfig.json文件中删除“ baseUrl”:“”纠正了警告#27 楼
如果打开项目外部存在的TS文件,则可能会遇到此问题。例如,我正在使用lerna,并从另一个软件包中打开了一个文件。尽管其他软件包具有带有实验装饰器的tsconfig,但VsCode却不兑现。#28 楼
如果您使用Deno JavaScript和TypeScript运行时,并且在tsconfig.json或VSCode ide设置中启用了experimentalDecorators:true。不起作用。根据Deno的要求,运行Deno文件时需要提供tsconfig作为标志。请参阅“自定义TypeScript编译器选项”。在我的特殊情况下,我正在运行Deno测试并使用过。$ deno test -c tsconfig.json
如果它是文件,则类似
$ deno run -c tsconfig.json mod.ts
我的tsconfig.json
/>
{
"compilerOptions": {
"allowJs": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"module": "esnext"
}
}
评论
我已经在执行此操作了,但还是没有运气,因为它们在docs实验功能中指出无法使用,
– Ezzabuzaid
20年5月25日在16:54
会的。请参阅我的tsconfig.json内容的最新答案。然后看这个链接github.com/manyuanrong/dso/issues/18
– tksilicon
20 May 25 '17:18
#29 楼
我将此选项添加到tsconfig.json,"baseUrl": "front-end"
用您的angular-cli项目的名称替换前端。#30 楼
您也可以尝试使用ng build
。我刚刚重建了应用程序,但现在不符合要求。
评论
您是否尝试过重新启动VS Code?我发现有时更改tsconfig.json后这是必要的。您可以尝试打击答案花花公子。它对我有用! stackoverflow.com/a/38970591/2468781
偶然地,如果有人遇到了使用VS Professional而不是VS Code的问题,则可能是手动将.ts文件添加到了角度项目中;如果是这样,则默认的TS编译与Angular CLI冲突。右键单击文件->属性->构建操作:无。然后根据需要重新启动VS。
VS Code重新启动可以帮助我解决问题。
正如@ paulsm4所说,在我的情况下,在错误目录中启动VSCode后出现了问题。您想在tsconfig.json用于项目的目录中启动VSCode。