我收到了警告…

对装饰器的实验性支持是一个在未来版本中可能会更改的特性。设置'experimentalDecorators'选项'以删除此警告。

... 即使我的编译选项在tsconfig。Json有以下设置:

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

奇怪的是,一些使用装饰器的随机类不显示警告,但同一项目中的其他类会显示警告。

在TypeScript编译器中,什么会导致这种行为?


当前回答

我必须在设置中添加以下内容。vscode的Json文件删除警告。

"javascript.implicitProjectConfig.experimentalDecorators": true

VSCode -> Preferences -> Settings

更新

正如Clepsyd指出的,这个设置已经被弃用了。你现在就需要使用

"js/ts.implicitProjectConfig.experimentalDecorators":true

其他回答

我不想赘述这一点,但一定要补充以下内容

工作区设置,而不是用户设置

在文件>>首选项>>设置

“javascript.implicitProjectConfig。experimentalDecorators”:真正的

这为我解决了这个问题,我尝试了我在这里和其他地方找到的一些建议。

我在Angular 2中创建可注入服务时也遇到了同样的问题。 我把所有的东西都放在tsconfig中。我仍然在ColorsImmutable行得到这个错误。

@Injectable()
export class ColorsImmutable {

修复方法是在模块级或组件级注册服务 使用providers数组。 提供者:[ColorsImmutable],

在VSCode中,转到File => Preferences => Settings(或Control+逗号),它将打开用户设置文件。搜索“javascript.implicitProjectConfig。experimentalDecorators”:真正的 然后勾选experimentalDecorators到文件的复选框,它应该会修复它。对我来说确实如此。

您也可以尝试使用ng build。我刚刚重建了应用程序,现在它不遵守。

我在tsconfig中添加了这个选项。将前端替换为angular-cli项目的名称。