为什么 PhpStorm 不显示所有 TSLint 规则?

Why doesn't PhpStorm show all TSLint rules?

我在 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 rule requires type info。 由于一些技术困难,TSLint 集成目前不支持此类规则:运行 TSLint with --project tsconfig.json(此类规则需要工作)对我们来说是不可接受的,因为它会导致 TypeScript 的第二个实例在 TSLint 进程中创建(除了用于编译和突出显示的 TypeScript 实例,如果启用的话)并且会导致明显的性能下降。虽然看起来 tslint --project 在提交前检查文件时执行得很快,但 IDE 在编辑代码时需要更快地响应。

要解决此问题,我们建议使用 typescript-tslint-plugin。 使用它:

  • 安装 'typescript-tslint-plugin' npm 包并将其添加到 tsconfig.json 中的 'plugins':
    {
    "compilerOptions": {
    "plugins": [{"name": "typescript-tslint-plugin"}]
    }
    }
  • 在 IDE 设置中禁用 TSLint(首选项 | 语言和框架 | TypeScript | TSLint)以避免相同的错误被显示两次。有关其他配置选项,请参阅 typescript-tslint-plugin docs.

  • 确保在首选项中启用 Typescript 语言服务 |语言和框架 |打字稿