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 ],