Visual Studio代码中的实验装饰器警告

我有

修饰器的实验性支持是未来版本中可能会发生变化的一项function。 设置'experimentalDecorators'选项`删除这个警告。

即使我在tsconfig.json中的compilerOptions有设置:

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

奇怪的是,一些使用装饰器的随机类没有显示警告,但在同一个项目中rest。

什么可能导致Visual Studio代码的这种行为

虽然VS Code是TypeScript项目的出色编辑器,但它每隔一段时间就需要一次踢球。 通常,在没有警告的情况下,某些文件导致它吓坏了,并抱怨。 大多数情况下,修复似乎是保存并closures所有打开的文件,然后打开tsconfig.json 。 之后,您应该能够重新打开违规文件,而不会出错。 如果不起作用,则起泡,冲洗并重复。

如果您的tsconfig.json使用files数组指定其源文件,则只有在引用了该files ,IntelliSense才能正常运行,以便VS代码可以通过遍历input文件树来find它。

必须将.vscode/settings.json添加到我的.vscode/settings.json

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

当您为工作区文件夹select“src”文件夹时,也会发生此错误。

当select“src”,“node_modules”所在的根文件夹,文件夹时,错误消失

在你的项目里面创build文件tsconfig.json,然后添加这行

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

在以下位置打开settings.json文件<project_folder>/.vscode/settings.json

或者您可以从菜单中打开文件,如下所述

VSCode -> File -> Preferences -> Workspace Settings

实验装置设置

然后在settings.json文件中添加以下行

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

就这样。 您将不会看到有关“ experimentalDecorators ”的警告/错误

为了清晰和愚蠢。

1)打开.vscode / settings.json。

2)在其上添加“typescript.tsdk”:“node_modules / typescript / lib”。

3)保存。

4)重新启动Visual Studio代码。

这个答案是为那些正在使用Javascript项目而不是一个Typescript的人准备的。 您可以使用jsconfig.json文件来代替tsconfig.json文件。

装饰器警告你要写入文件的特殊情况下:

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

根据要求提供的bug行为,最好在configuration文件中指定“include”,然后重新启动编辑器。 例如

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

我通过从tsconfig.json文件中删除“baseUrl”:“”更正了警告

打开整个项目的文件夹而不是project-name / src

tsconfig.json不在src文件夹中

如果打开项目外部存在的TS文件,则可能会遇到此问题。 例如,我使用lerna并从另一个包中打开一个文件。 虽然其他软件包有自己的tsconfig与实验装饰,VsCode不尊重它。

我在Angular 2中创buildInjectable Services时遇到了同样的问题。我在tsconfig.json中find了所有的东西,直到我在ColorsImmutable中得到这个错误。

 @Injectable() export class ColorsImmutable { 

而修复是使用提供程序数组在“模块级别”或“组件级别”上注册服务。

 providers:[ColorsImmutable ],