问题描述
我在Angular项目的PhpStorm(v2020.2.1 Build#PS-202.6948.87)和TSLint上遇到问题。
实际上,我安装了“ angular-tslint-rules”软件包,在PhpStorm的设置中激活了TSLint的自动配置,以便获得尽可能干净的代码。
但是,PhpStorm并未指出“ angular-tslint-rules”软件包中包含的所有错误。我有一个规则prefer-readonly
的例子。如您所见,在PhpStorm上没有加下划线:
在Vscode中,如您所见,在同一代码下标有错误“ prefer-readonly”:
那么为什么PhpStorm不向我指出错误?您有任何可能的解决方案吗?
感谢您的帮助。
解决方法
prefer-readonly规则requires type info。
由于某些技术困难,TSLint集成当前不支持此类规则:使用--project tsconfig.json
(要求此类规则正常运行)运行TSLint对我们来说是不可接受的,因为它将导致在内部创建TypeScript的第二个实例TSLint进程(除了用于编译和突出显示的TypeScript实例(如果已启用)之外)还将导致明显的性能下降。尽管看起来tslint --project
在提交前检查文件时执行得很快,但是IDE在编辑代码时需要更快地响应。
要解决此问题,我们建议使用typescript-tslint-plugin。 要使用它:
- 安装“ typescript-tslint-plugin” npm软件包并将其添加到tsconfig.json中的“ plugins”中:
{
"compilerOptions": {
"plugins": [{"name": "typescript-tslint-plugin"}]
}
}
-
在IDE设置(首选项|语言和框架| TypeScript | TSLint )中禁用TSLint,以避免两次显示相同的错误。有关其他配置选项,请参见typescript-tslint-plugin docs。
-
确保在首选项|选项中启用Typescript语言服务。语言和框架| TypeScript