VSCode:是不是可以抑制实验性装饰器警告
Posted
技术标签:
【中文标题】VSCode:是不是可以抑制实验性装饰器警告【英文标题】:VSCode: Is it possible to suppress experimental decorator warningsVSCode:是否可以抑制实验性装饰器警告 【发布时间】:2015-10-22 15:09:21 【问题描述】:在 VSCode 中,我收到错误:
“对装饰器的实验性支持是一项可能会在未来版本中更改的功能。指定 '
--experimentalDecorators
' 以删除此警告。”
我可以将--experimentalDecorators
标志添加到我的tasks.json
文件以在构建时删除此错误,但在加载VSCode 时我似乎无法将其从智能感知或错误列表中删除。
有没有办法做到这一点?
【问题讨论】:
【参考方案1】:下面是 VSCode 版本 1.60.12 的答案
-
按“ctrl”+“,”。
输入“settings.json”。
see this image to click on settings..
粘贴“js/ts.implicitProjectConfig.experimentalDecorators”:true -->
See my settings for reference
【讨论】:
【参考方案2】:我已经在 tsconfig.json 中启用了实验性装饰器,所以我有点困惑,直到我发现 this thread on GitHub 有人说要检查 VS Code 中的设置。
所以我去了 File --> Preferences --> Settings 并搜索了实验性装饰器并检查了这两个设置:
以下是我的 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
【讨论】:
【参考方案3】:请检查您在 VS Code 中打开了整个项目的文件夹,而不仅仅是 src 文件夹,因为如果您只打开 src,则 ts.config.json 文件将不在范围内,VS 将无法识别实验装饰器参数。
就我而言,这解决了所有问题
【讨论】:
【参考方案4】:我必须在 vscode 的 settings.json 文件中添加以下内容以消除警告。
"javascript.implicitProjectConfig.experimentalDecorators": true
VSCode -> 首选项 -> 设置
【讨论】:
请不要添加same answer to multiple questions。一旦您获得足够的声誉,就回答最好的一个并将其余的标记为重复项。如果不是重复的,edit 回答并根据问题调整帖子。 @Rob。谢谢(你的)信息。也会这样做。 这对我有用。以前的答案都没有。谢谢@ManojPaul【参考方案5】:即使在项目中的正确级别打开 VSCode,您可能仍需要在根目录中添加一个额外的 tsconfig 文件。我现在在我的项目根目录(仅包含 php 索引和文件夹)、ts 文件夹(遗留 typescript 类)和我的 src 文件夹(vue 组件)中有一个 tsconfig。
不要忘记关闭文件夹并重新启动 VSCode。
【讨论】:
【参考方案6】:正如其他答案所指出的,您的 Visual Studio 代码需要找到 tsconfig.json
文件。
我遇到了同样的问题。这主要是因为我没有意识到项目结构。
(提示:从上到下阅读下图中的文字)。
-
我将
tsconfig.json
与tsconfig.app.json
混淆了。
我在 Visual Studio 中打开了错误的文件夹。因此,tsconfig.json
不在范围内。
只需打开正确的根文件夹(即项目文件夹,比src
高一级。)为我解决了问题。
【讨论】:
感谢这个!!我正在使用 VS Code 打开src
文件夹,所以我所要做的就是将 tsconfig.json
复制到 src
。
@MariusB 实际上,最好将文件夹打开更高一级,因为您不仅会错过tsconfig.json
,还会错过其他文件,例如package.json
,. ..它们都需要位于您项目的根目录中。所以,实际上,您不想打开 src
文件夹,但您实际上想打开它的父文件夹。【参考方案7】:
这有助于我处理 React JS 文件(VSCode 版本 1.9.1)。
1) 放入tsconfig.json
:
"compilerOptions":
"experimentalDecorators": true,
"allowJs": true
2) 重启 VS Code。
注意:正如 Tim 下面提到的,即使您不使用 TypeScript,您也需要添加 tsconfig.json
。
来源:https://ihatetomatoes.net/how-to-remove-experimentaldecorators-warning-in-vscode/
【讨论】:
我已经成功了。请注意,即使您不使用 TypeScript,也需要添加 tsconfig.json。【参考方案8】:如果您使用 Grunt (grunt-ts),您还必须在文件 gruntfile.js 中添加“experimentalDecorators: true”作为选项。
您的文件最后应该如下所示:
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
【讨论】:
【参考方案9】:我遇到了同样的错误。我将以下tsconfig.json
文件添加到我的项目根目录,重新启动VSCode,它终于消失了:
"compilerOptions":
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"module": "amd",
"target": "ES6"
更新:
我注意到有时 VS Code 不会抑制此警告,除非您在 tsconfig.json 中添加“文件”数组,即使是空的也可以。对我来说,现在每次都有效,如果消息没有消失,请尝试以下操作:
"compilerOptions":
...
,
"files": [],
"exclude": [
"node_modules"
]
也许这可以解释为什么每个人都有不同的结果?
【讨论】:
文件不应该叫jsconfig.json而不是tsconfig.json吗?我的只使用 JS 而不是 TS。 无法使其与tsconfig.json
和 jsconfig.json
... (v0.10.11 linux-x64) 一起使用
无论我给出什么设置,它都无法运行。不得不走@Wosi的方式
我正在使用 VS Code 1.3.1,将 experimentalDecorators: true
添加到 tsconfig.json
仍然无法消除此错误。我正在使用打字稿 v1.8.10。其他区别是module: commonjs
和target: es5
。有什么想法吗?
对我来说,将"target": "es5"
更改为"target": "ES6"
解决了这个问题。【参考方案10】:
在两个不同的 Angular 2 最终发布项目中苦苦挣扎,这是我的解决方案。
tsconfig.json 在 src 折叠中。
"compilerOptions":
"experimentalDecorators": true
与
将此设置添加到文件->首选项->用户设置
"typescript.tsdk": "node_modules\\typescript\\lib"
【讨论】:
互联网上所有解决方案中唯一对我有用的东西,但我必须将其添加到可以从工作区设置打开的 settings.json 中【参考方案11】:VSC 默认查看自己的 TS 库和定义。如果您使用的是不同的版本(这很可能),您应该指向 VSC 来查找该版本的定义。
在我的settings.json
文件中,我进行了以下设置:
// Place your settings in this file to overwrite default and user settings.
"typescript.tsdk": "node_modules\\typescript\\lib"
我相信您可以为您的用户设置或工作区设置进行设置。因此,您可以在用户设置中进行一次性配置,也可以只为一个项目/工作区进行配置。如果您将打字稿安装在本地指定文件夹中,则此方法有效 - 我相信这是默认节点模块文件夹。
要编辑您的设置,请转到File/Preferences/User Setting
或File/Preference/Workspace Settings
。
更新:Visual Studio Code 刚刚发布了一个新版本,更好地支持不同版本的打字稿。在这里查看:https://code.visualstudio.com/updates#_languages
【讨论】:
这很好用!如果您在使用 webpack 的 angular-cli 时遇到此问题,请尝试一下。 angular-cli 在本地使用 TypeScript 2.0。在项目的根目录下创建一个 .vscode 目录,并使用这个 sn-p 添加一个 settings.json 文件。 谢谢!这终于为我解决了这个问题。 PS。只需确保您提供正确的相对路径,它从您在 VSC 中打开的目录开始。对我来说是"typescript.tsdk": "Apps/WebApp/node_modules/typescript/lib"
效果很好!你应该提到,如果你运行npm list typescript
,它会告诉你你安装了多少个版本,如果>1,你需要明确“告诉它”使用哪个版本。
谢谢老兄。有效!【参考方案12】:
我遇到了同样的错误,我发现这是我将组件文件扩展名命名为 .js 它应该是 .ts
【讨论】:
你确定吗? .js 是 JavaScript,而 .ts 是被编译成 JavaScript 的 TypeScript。原则上是一样的 @slfan 是的,它们可能是相同的,但我注意到我的文件是用打字稿编写的,我用 .js ext 命名它,这是错误的,当你用 .ts 命名它然后它编译时它不会编译进入javascript【参考方案13】:在 Visual Studio code 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);
【讨论】:
【参考方案14】:您可以在setting.json
中使用"typescript.tsdk"
更改包含VSCode 使用的tsserver.js 和lib.ts 文件的特定文件夹路径。
请参阅此示例:Can I use a relative path to configure typescript sdk?
注意:您可以在文件 > 首选项 > 用户设置中找到 setting.json
。
【讨论】:
我必须以@Wosi 的方式编辑文件,和然后编辑“typescript.tsdk”以指向更新文件的目录以使工作正常。跨度> 【参考方案15】:您可以通过删除%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);
【讨论】:
对于最新版本(目前为0.10.11)路径更改为resources/app/extensions/typescript/server/typescript/lib/tsserver.js
我在使用非 Visual Studio 应用程序(javascript 中的 Angular 应用程序)时也遇到了这个错误。在这种情况下,要修复的文件是:node_modules/typescript/lib/tsserver.js
@people 另请注意,在我的情况下,我必须像上面那样替换文件中的多行。
刚刚更新VSC;路径现在更改为:%code%\resources\app\extensions\typescript\node_modules\typescript\lib\tsserver.js
我已经为此奋斗了 6 个月,基本上已经尝试了所有方法,这是唯一对我有用的方法。非常感谢。以上是关于VSCode:是不是可以抑制实验性装饰器警告的主要内容,如果未能解决你的问题,请参考以下文章
vscode:[ts] 对装饰器的实验性支持是一项可能会更改的功能
VSCode 错误装饰默认为文本不透明度(而不是下划线波浪)