VSCode: 是否可以抑制实验性装饰器警告

VSCode: Is it possible to suppress experimental decorator warnings

在 VSCode 中,我得到错误:

"Experimental support for decorators is a feature that is subject to change in a future release. Specify '--experimentalDecorators' to remove this warning."

我可以将 --experimentalDecorators 标志添加到我的 tasks.json 文件中以在构建时删除此错误,但是当我加载 VSCode.

有办法吗?

您可以通过删除在 %code%\resources\app\plugins\vs.language.typescript\lib\tsserver.lib.

中创建错误的行来实现这一点。

查找以下代码并删除它

            if (!compilerOptions.experimentalDecorators) {
              error(node, ts.Diagnostics.Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Specify_experimentalDecorators_to_remove_this_warning);
            }

您可以在 setting.json 中使用 "typescript.tsdk" 来更改包含 VSCode 使用的 tsserver.js 和 lib.ts 文件的特定文件夹路径。

看这个例子:Can I use a relative path to configure typescript sdk?

注意:您可以在文件 > 首选项 > 用户设置中找到 setting.json

我遇到了同样的错误。我将以下 tsconfig.json 文件添加到我的项目根目录,重新启动 VSCode 它终于消失了:

{
    "compilerOptions": {
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "module": "amd",
        "target": "ES6" 
    }
}

更新:

我注意到有时 VS Code 不会抑制此警告,直到您在 tsconfig.json 中添加一个 "files" 数组,即使是一个空数组也可以工作.对我来说,现在每次都有效,如果消息没有消失,请尝试以下操作:

{
    "compilerOptions": {
        ... 
    },
    "files": [],
    "exclude": [
        "node_modules"
    ]
}

也许这可以解释为什么每个人的结果都不尽相同?

如果您使用 Grunt (grunt-ts),您还必须在文件 gruntfile.js[ 中添加“experimentalDecorators: true”作为选项=20=].

你的文件最后应该看起来像这样:

module.exports = function(grunt) {
  grunt.initConfig({
    ts: {
      default : {
        src: ["**/*.ts", "!node_modules/**"]
      },
      options: {
        experimentalDecorators: true
      }
    }
  });
  grunt.loadNpmTasks("grunt-ts");
  grunt.registerTask("default", ["ts"]);
};

有关详细信息,您可以阅读有关 github https://github.com/TypeStrong/grunt-ts#experimentaldecorators

的文档

Visual studio 代码 1.3.1 中,我的修复在 C:\Program Files (x86)\Microsoft VS Code\resources\app\extensions\typescript\server\typescript\lib\tsserver .js 并注释掉或删除该行。

if (!compilerOptions.experimentalDecorators) {
     error(node, ts.Diagnostics.Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Specify_experimentalDecorators_to_remove_this_warning);
}

我遇到了同样的错误,我弄明白了,因为我将组件文件扩展名命名为 .js,它应该是 .ts

VSC 默认查看自己的 TS 库和定义。如果您使用不同的版本(很有可能),您应该指向 VSC 以查找该版本定义。

在我的 settings.json 文件中,我进行了以下设置:

// Place your settings in this file to overwrite default and user settings.
{
    "typescript.tsdk": "node_modules\typescript\lib"

}

我相信您可以为用户设置或工作区设置设置此项。因此,您可以在用户设置中进行一次性配置,或者只进行一次配置 project/workspace。如果您将打字稿本地安装在指定文件夹中,这将起作用 - 我相信这是默认的节点模块文件夹。

要编辑您的设置,请转至 File/Preferences/User SettingFile/Preference/Workspace Settings

更新:Visual Studio Code 刚刚发布了一个新版本,可以更好地支持不同版本的打字稿。在这里查看:https://code.visualstudio.com/updates#_languages

在两个不同的 Angular 2 个最终发布项目中苦苦挣扎,这是我的解决方案。

tsconfig.jsonsrc 折叠中。

{
    "compilerOptions": {

        "experimentalDecorators": true

    }
} 

AND

将此设置添加到文件->首选项->用户设置

"typescript.tsdk": "node_modules\typescript\lib"

这对我处理 React JS 文件(VSCode 版本 1.9.1)很有帮助。

1) 放入tsconfig.json:

{
    "compilerOptions": {
        "experimentalDecorators": true,
        "allowJs": true
    }
}

2) 重启 VS Code。

注意: 正如蒂姆在下面提到的,即使您不使用 TypeScript,也需要添加 tsconfig.json

来源:https://ihatetomatoes.net/how-to-remove-experimentaldecorators-warning-in-vscode/

正如其他答案所指出的,您的 Visual Studio 代码需要找到 tsconfig.json 文件。

我遇到了同样的问题。这主要是因为我没有意识到项目结构。

(提示:从上到下阅读下图中的文字)。

  1. 我把 tsconfig.jsontsconfig.app.json 混淆了。
  2. 而且我在 Visual Studio 中打开了错误的文件夹。因此,tsconfig.json 不在范围内。

只需打开正确的根文件夹(即项目文件夹,比 src 高一级)就解决了我的问题。

即使在项目中的正确级别打开 VSCode,您可能仍需要在根目录中添加一个额外的 tsconfig 文件。我现在在我的项目根目录中有一个 tsconfig(仅包含 php 索引和文件夹)、ts 文件夹(旧版 typescript 类)和我的 src 文件夹(vue 组件)。

不要忘记关闭文件夹并重新启动 VSCode。

我必须在 vscode 的 settings.json 文件中添加以下内容以删除警告。

"javascript.implicitProjectConfig.experimentalDecorators": true

VSCode -> 首选项 -> 设置

请检查您在 VS Code 中打开了整个项目的文件夹,而不仅仅是 src 文件夹,因为如果您只打开 src,那么 ts.config.json 文件将不在范围内,VS 将无法识别实验装饰器参数。

就我而言,这解决了所有问题

我已经在 tsconfig.json 中启用了实验性装饰器,所以我有点困惑,直到我发现 this thread on GitHub 有人说要检查 VS Code 中的设置。

所以我转到文件 --> 首选项 --> 设置并搜索实验装饰器并检查了这两个设置:

以下是我的 VSCode 版本的详细信息:

Version: 1.52.1 (user setup)
Commit: ea3859d4ba2f3e577a159bc91e3074c5d85c0523
Date: 2020-12-16T16:34:46.910Z
Electron: 9.3.5
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: 8.3.110.13-electron.0
OS: Windows_NT x64 10.0.18363

下面是 VSCode 版本 1.60.12

的答案
  1. 按“ctrl”+“,”。
  2. 键入“settings.json”。
  3. see this image to click on settings..
  4. 粘贴“js/ts.implicitProjectConfig.experimentalDecorators”:true --> See my settings for reference