错误:在“tsconfig”或“jsconfig”中设置“experimentalDecorators”选项以删除此警告

Posted

技术标签:

【中文标题】错误:在“tsconfig”或“jsconfig”中设置“experimentalDecorators”选项以删除此警告【英文标题】:Error: Set the 'experimentalDecorators' option in your 'tsconfig' or 'jsconfig' to remove this warning 【发布时间】:2020-08-04 01:49:32 【问题描述】:

我正在尝试让一个基本的装饰器示例在 TypeScript 中工作,但没有任何运气。

我经常看到错误消息:

对装饰器的实验性支持是一项受制于 在将来的版本中更改。设置 'experimentalDecorators' 选项 你的 'tsconfig' 或 'jsconfig' 来删除这个警告。

我的 tsconfig.json 看起来如下(tsconfig 与 index.ts 在同一文件夹中):


    "compilerOptions": 
        "target": "esnext",
        "watch": true,
        "experimentalDecorators": true,
    

这似乎是一个非常流行的问题,并且在 SO e 上已被多次询问。 g.:Experimental decorators warning in TypeScript compilation

我已经尝试了所有解决方案,但都没有运气。另外,我的问题似乎与vscode无关。尝试从 shell 运行文件时遇到同样的错误。

到目前为止我已经尝试过:

    重启 VC 代码 EmitDecoratorMetaData: true 允许实验性装饰器作为 VC 代码中的隐式配置 在 VC 代码中 手动设置 TS 版本 新建 tsconfig.json

编辑

index.ts

function f(): any 
    console.log("f(): evaluated");
    return function (target, propertyKey: string, descriptor: PropertyDescriptor) 
        console.log("f(): called");
    


function g(): any 
    console.log("g(): evaluated");
    return function (target, propertyKey: string, descriptor: PropertyDescriptor) 
        console.log("g(): called");
    


class C 
    @f()
    @g()
    method() 

【问题讨论】:

您能分享一下使用的是哪个版本的 TypeScript 吗?你也可以分享你要编译的模块吗?这将有助于重现错误。 TS 版本 3.8.3 我添加了模块 您在 VS Code 中也遇到了问题,还是仅在 CLI 中遇到了问题? 两者都产生同样的错误。 【参考方案1】:

您可以使用显式提供给命令行的标志从 CLI 中删除警告:

tsc index.ts --experimentalDecorators

另一种方法是在tsconfigfiles 部分中列出index.ts


  "files": ["index.ts"],
  "compilerOptions": 
    "target": "esnext",
    "experimentalDecorators": true
  

您可以不带任何参数调用 CLI,它应该可以正常运行。

tsc 

我没能在 VS Code 中重现错误。

【讨论】:

【参考方案2】:

我注意到 VS Code 在设置中有一个选项可以为不属于项目的文件启用experimentalDecorators。您的代码文件是您项目的一部分吗?

【讨论】:

【参考方案3】:

我在观看模式下遇到了这个错误。使用experimentalDecorators:true 手动更新tsconfig.json 文件并没有为我修复它。有效的解决方案是

杀死监视终端。或按 ctrl C 运行:tsc app.ts --experimentalDecorators --watch

app.js 是你的 TS 入口文件。 之后我检查了我的 tsconfig.json 文件,发现experimentalDecorators 设置为true。

【讨论】:

以上是关于错误:在“tsconfig”或“jsconfig”中设置“experimentalDecorators”选项以删除此警告的主要内容,如果未能解决你的问题,请参考以下文章

mobx对修饰器的实验支持功能在将来的版本中可能更改。在 “tsconfig“ 或 “jsconfig“ 中设置 “experimentalDecorators“ 选项以删除此警告

如何禁用从 VSCode 中的特定文件自动导入?

jsconfig.json 给出 ts 错误

Typescript错误在tsconfig.json中将模块更改为“umd”或“amd”时找不到模块'typescript-Collections'

Vetur 找不到 package.json

如何修复“找不到文件'.../node_modules/dotenv/types'。”来自 jsconfig.json 的错误?