我收到了警告…
对装饰器的实验性支持是一个在未来版本中可能会更改的特性。设置'experimentalDecorators'选项'以删除此警告。
... 即使我的编译选项在tsconfig。Json有以下设置:
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
奇怪的是,一些使用装饰器的随机类不显示警告,但同一项目中的其他类会显示警告。
在TypeScript编译器中,什么会导致这种行为?
我收到了警告…
对装饰器的实验性支持是一个在未来版本中可能会更改的特性。设置'experimentalDecorators'选项'以删除此警告。
... 即使我的编译选项在tsconfig。Json有以下设置:
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
奇怪的是,一些使用装饰器的随机类不显示警告,但同一项目中的其他类会显示警告。
在TypeScript编译器中,什么会导致这种行为?
当前回答
这个答案是为那些使用Javascript项目而不是Typescript项目的人准备的。而不是tsconfig。Json文件,你可以使用jsconfig。json文件。
在有decorator警告的特殊情况下,你可以在文件内部写:
{
"compilerOptions": {
"experimentalDecorators": true
}
}
对于有问题的行为,最好在配置文件中指定“include”,并重新启动编辑器。如。
{
"compilerOptions": {
"target": "ES6",
"experimentalDecorators": true
},
"include": [
"app/**/*"
],
"exclude": [
"node_modules"
]
}
其他回答
必须添加typescript。TSDK到我的.vscode/settings.json:
"typescript.tsdk": "node_modules/typescript/lib"
打开设置。Json文件在以下位置<project_folder>/.vscode/settings.json
或者您可以从下面提到的菜单中打开该文件
VSCode -> File -> Preferences -> Workspace Settings
然后在“设置”中添加以下行。json文件
{
"typescript.tsdk": "node_modules/typescript/lib",
"enable_typescript_language_service": false
}
这是所有。关于'experimentalDecorators'你不会看到任何警告/错误
我在Angular 2中创建可注入服务时也遇到了同样的问题。 我把所有的东西都放在tsconfig中。我仍然在ColorsImmutable行得到这个错误。
@Injectable()
export class ColorsImmutable {
修复方法是在模块级或组件级注册服务 使用providers数组。 提供者:[ColorsImmutable],
当您选择“src”文件夹作为工作区文件夹时,也会发生此错误。
当选择“src”,“node_modules”所在的根文件夹时,错误消失
对我来说,这个错误“对装饰器的实验性支持是一个在未来版本中可能会更改的特性。(etc)”只会在Angular项目的VS Code中出现,而且只会在创建新服务时出现。
上面的解决方案:“在Visual Code Studio转到文件>>首选项>>设置,在搜索字段搜索“decorator”,并检查选项JavaScript›隐式项目配置:实验Decorators”解决了这个问题。
此外,在终端窗口中停止ng服务并重新启动它可以使错误在重新编译后消失。