我收到了警告…

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

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

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

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

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


当前回答

我必须在设置中添加以下内容。vscode的Json文件删除警告。

"javascript.implicitProjectConfig.experimentalDecorators": true

VSCode -> Preferences -> Settings

更新

正如Clepsyd指出的,这个设置已经被弃用了。你现在就需要使用

"js/ts.implicitProjectConfig.experimentalDecorators":true

其他回答

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

@Injectable({
  providedIn: 'root'
})

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

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

我必须在设置中添加以下内容。vscode的Json文件删除警告。

"javascript.implicitProjectConfig.experimentalDecorators": true

VSCode -> Preferences -> Settings

更新

正如Clepsyd指出的,这个设置已经被弃用了。你现在就需要使用

"js/ts.implicitProjectConfig.experimentalDecorators":true

我在tsconfig中添加了这个选项。将前端替换为angular-cli项目的名称。

虽然VS Code对于TypeScript项目来说是一个很棒的编辑器,但它需要时不时地踢一下。通常,在没有警告的情况下,某些文件会导致它崩溃并报错。大多数修复方法似乎是保存并关闭所有打开的文件,然后打开tsconfig.json。在此之后,您应该能够重新打开有问题的文件而不会出现错误。如果不奏效,就打泡沫,冲洗,然后重复。

如果你的tsconfig。json使用files数组指定它的源文件,智能感知只有在有问题的文件被引用时才能正常工作,这样VS Code可以通过遍历输入文件树找到它。

编辑:“重新加载窗口”命令(多年前添加的)应该一劳永逸地解决这个问题。

必须添加typescript。TSDK到我的.vscode/settings.json:

"typescript.tsdk": "node_modules/typescript/lib"