我收到了警告…

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

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

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

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

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


当前回答

因此,您可以通过将模块名与文件名匹配来解决这个问题。如果模块名为BankSpecialtyModule,那么文件名应该是。bank-specialty.module.ts

其他回答

如果你使用Deno JavaScript和TypeScript运行时,并且在tsconfig中启用了experimentalDecorators:true。json或VSCode ide设置。这是行不通的。根据Deno要求,在运行Deno文件时需要提供tsconfig作为标志。参见自定义TypeScript编译器选项

在我的特殊情况下,我正在运行一个Deno测试并使用。

$ deno test -c tsconfig.json

如果它是一个文件,你会有

 $ deno run -c tsconfig.json mod.ts

我tsconfig.json

{
  "compilerOptions": {
    "allowJs": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "module": "esnext"
  }
}

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

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

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

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

并在申报中进行了登记

VScode开放。 按ctrl +逗号 按照屏幕截图中的说明操作 搜索有关 experimentalDecorators 编辑它

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

@Injectable({
  providedIn: 'root'
})

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

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

步骤1:在VS code中按ctrl +

步骤2:输入'js/ts。implicitProjectConfig: Experimental Decorators的搜索框

第三步:选中与搜索相关的复选框