我收到了警告…

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

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

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

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

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


当前回答

在VSCode中,转到File => Preferences => Settings(或Control+逗号),它将打开用户设置文件。搜索“javascript.implicitProjectConfig。experimentalDecorators”:真正的 然后勾选experimentalDecorators到文件的复选框,它应该会修复它。对我来说确实如此。

其他回答

这个错误也可能意味着tsconfig.json中有错误 以我为例,我在图书馆周围移动,没有固定路径

"extends": "../../tsconfig.base.json",

修复后,错误立即消失,不需要重新启动VS Code。

对我来说,这个错误“对装饰器的实验性支持是一个在未来版本中可能会更改的特性。(etc)”只会在Angular项目的VS Code中出现,而且只会在创建新服务时出现。

上面的解决方案:“在Visual Code Studio转到文件>>首选项>>设置,在搜索字段搜索“decorator”,并检查选项JavaScript›隐式项目配置:实验Decorators”解决了这个问题。

此外,在终端窗口中停止ng服务并重新启动它可以使错误在重新编译后消失。

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

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

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

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

并在申报中进行了登记

打开设置。Json文件在以下位置<project_folder>/.vscode/settings.json

或者您可以从下面提到的菜单中打开该文件

VSCode -> File -> Preferences -> Workspace Settings

然后在“设置”中添加以下行。json文件

{
    "typescript.tsdk": "node_modules/typescript/lib",
    "enable_typescript_language_service": false
}

这是所有。关于'experimentalDecorators'你不会看到任何警告/错误

创建一个新的Angular服务时,我会在vscode中得到这个警告

@Injectable({
  providedIn: 'root'
})

语法(而不是在app.module.ts中提供服务)。

警告一直持续到我在项目的某个地方引用新服务为止。一旦该服务被使用,警告就会消失。不需要更改typescript配置或vscode设置。