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 Setting
或 File/Preference/Workspace Settings
。
更新:Visual Studio Code 刚刚发布了一个新版本,可以更好地支持不同版本的打字稿。在这里查看:https://code.visualstudio.com/updates#_languages
在两个不同的 Angular 2 个最终发布项目中苦苦挣扎,这是我的解决方案。
tsconfig.json 在 src 折叠中。
{
"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
文件。
我遇到了同样的问题。这主要是因为我没有意识到项目结构。
(提示:从上到下阅读下图中的文字)。
- 我把
tsconfig.json
和 tsconfig.app.json
混淆了。
- 而且我在 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
的答案
- 按“ctrl”+“,”。
- 键入“settings.json”。
- see this image to click on settings..
- 粘贴“js/ts.implicitProjectConfig.experimentalDecorators”:true -->
See my settings for reference
在 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 Setting
或 File/Preference/Workspace Settings
。
更新:Visual Studio Code 刚刚发布了一个新版本,可以更好地支持不同版本的打字稿。在这里查看:https://code.visualstudio.com/updates#_languages
在两个不同的 Angular 2 个最终发布项目中苦苦挣扎,这是我的解决方案。
tsconfig.json 在 src 折叠中。
{
"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
文件。
我遇到了同样的问题。这主要是因为我没有意识到项目结构。
(提示:从上到下阅读下图中的文字)。
- 我把
tsconfig.json
和tsconfig.app.json
混淆了。 - 而且我在 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
的答案- 按“ctrl”+“,”。
- 键入“settings.json”。
- see this image to click on settings..
- 粘贴“js/ts.implicitProjectConfig.experimentalDecorators”:true --> See my settings for reference