我收到了警告…

对装饰器的实验性支持是一个在未来版本中可能会更改的特性。设置'experimentalDecorators'选项'以删除此警告。

... 即使我的编译选项在tsconfig。Json有以下设置:

"emitDecoratorMetadata": true,
"experimentalDecorators": true,

奇怪的是,一些使用装饰器的随机类不显示警告,但同一项目中的其他类会显示警告。

在TypeScript编译器中,什么会导致这种行为?


当前回答

在我的情况下,我通过在我的tsconfig中设置“include”:["src/**/*"]来解决这个问题。Json文件和重新启动vscode。 我从一个github问题得到了这个解决方案:https://github.com/microsoft/TypeScript/issues/9335

其他回答

这个答案是为那些使用Javascript项目而不是Typescript项目的人准备的。而不是tsconfig。Json文件,你可以使用jsconfig。json文件。

在有decorator警告的特殊情况下,你可以在文件内部写:

{
    "compilerOptions": {
        "experimentalDecorators": true
    }
}

对于有问题的行为,最好在配置文件中指定“include”,并重新启动编辑器。如。

{
    "compilerOptions": {
        "target": "ES6",
        "experimentalDecorators": true
    },
    "include": [
        "app/**/*"
    ],
    "exclude": [
        "node_modules"
    ]
}

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

在我的案例中,这解决了与此问题相关的所有问题。

当您选择“src”文件夹作为工作区文件夹时,也会发生此错误。

当选择“src”,“node_modules”所在的根文件夹时,错误消失

我在下面的语句中有这个错误

对装饰器的实验性支持是一个在未来版本中可能会更改的特性。在你的tsconfig或jsconfig中设置'experimentalDecorators'选项来删除这个警告。ts(1219)

这是因为我的组件没有在AppModule或(app.module.ts)中注册 我简单地给命名空间

import {abcComponent} from '../app/abc/abc.component';

并在申报中进行了登记

"javascript.implicitProjectConfig.experimentalDecorators": true

将解决这个问题。