我收到了警告…
对装饰器的实验性支持是一个在未来版本中可能会更改的特性。设置'experimentalDecorators'选项'以删除此警告。
... 即使我的编译选项在tsconfig。Json有以下设置:
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
奇怪的是,一些使用装饰器的随机类不显示警告,但同一项目中的其他类会显示警告。
在TypeScript编译器中,什么会导致这种行为?
我收到了警告…
对装饰器的实验性支持是一个在未来版本中可能会更改的特性。设置'experimentalDecorators'选项'以删除此警告。
... 即使我的编译选项在tsconfig。Json有以下设置:
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
奇怪的是,一些使用装饰器的随机类不显示警告,但同一项目中的其他类会显示警告。
在TypeScript编译器中,什么会导致这种行为?
当前回答
当我创建一个新模块并移动我的*.module时,我遇到了这个错误。Ts和*-routing.module。Ts文件到另一个文件夹。在我删除了这两个文件并在新文件夹上创建了模块后,它可以完美地工作。 Angular版本9和Angular CLI版本9.1.0
其他回答
在项目中创建文件tsconfig。Json,然后添加这些行
{
"compilerOptions": {
"experimentalDecorators": true,
"allowJs": true
}
}
在我的情况下,我通过在我的tsconfig中设置“include”:["src/**/*"]来解决这个问题。Json文件和重新启动vscode。 我从一个github问题得到了这个解决方案:https://github.com/microsoft/TypeScript/issues/9335
如果您正在使用cli编译*。在ts文件中,可以使用以下命令设置experimentalDecorators:
tsc filename.ts --experimentalDecorators "true"
创建一个新的Angular服务时,我会在vscode中得到这个警告
@Injectable({
providedIn: 'root'
})
语法(而不是在app.module.ts中提供服务)。
警告一直持续到我在项目的某个地方引用新服务为止。一旦该服务被使用,警告就会消失。不需要更改typescript配置或vscode设置。
我最近在Visual Studio 2017下遇到了这个问题——原来这是由VS的一个“功能”引起的——忽略tsconfig。当构建操作未设置为内容时,json。
因此,将Build操作更改为Content并重新加载解决方案就解决了这个问题。