我收到了警告…
对装饰器的实验性支持是一个在未来版本中可能会更改的特性。设置'experimentalDecorators'选项'以删除此警告。
... 即使我的编译选项在tsconfig。Json有以下设置:
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
奇怪的是,一些使用装饰器的随机类不显示警告,但同一项目中的其他类会显示警告。
在TypeScript编译器中,什么会导致这种行为?
我收到了警告…
对装饰器的实验性支持是一个在未来版本中可能会更改的特性。设置'experimentalDecorators'选项'以删除此警告。
... 即使我的编译选项在tsconfig。Json有以下设置:
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
奇怪的是,一些使用装饰器的随机类不显示警告,但同一项目中的其他类会显示警告。
在TypeScript编译器中,什么会导致这种行为?
当前回答
如果你使用Deno JavaScript和TypeScript运行时,并且在tsconfig中启用了experimentalDecorators:true。json或VSCode ide设置。这是行不通的。根据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"
}
}
其他回答
为了清晰和愚蠢。
1) 打开 .vscode/settings.json。
2)添加“typescript”。Tsdk ": "node_modules/typescript/lib"
3)保存。
4)重启Visual Studio代码。
对我来说,这个错误“对装饰器的实验性支持是一个在未来版本中可能会更改的特性。(etc)”只会在Angular项目的VS Code中出现,而且只会在创建新服务时出现。
上面的解决方案:“在Visual Code Studio转到文件>>首选项>>设置,在搜索字段搜索“decorator”,并检查选项JavaScript›隐式项目配置:实验Decorators”解决了这个问题。
此外,在终端窗口中停止ng服务并重新启动它可以使错误在重新编译后消失。
我必须在设置中添加以下内容。vscode的Json文件删除警告。
"javascript.implicitProjectConfig.experimentalDecorators": true
VSCode -> Preferences -> Settings
更新
正如Clepsyd指出的,这个设置已经被弃用了。你现在就需要使用
"js/ts.implicitProjectConfig.experimentalDecorators":true
步骤1:在VS code中按ctrl +
步骤2:输入'js/ts。implicitProjectConfig: Experimental Decorators的搜索框
第三步:选中与搜索相关的复选框
我最近在Visual Studio 2017下遇到了这个问题——原来这是由VS的一个“功能”引起的——忽略tsconfig。当构建操作未设置为内容时,json。
因此,将Build操作更改为Content并重新加载解决方案就解决了这个问题。