为何将TSLint规则的severity设为"warning"仍触发错误?
解决IntelliJ中TSLint规则Severity不生效的问题
我来帮你搞定这个TSLint在IntelliJ里死活不触发警告、一直显示错误的问题!
先明确你的问题
你想让no-cross-import规则触发警告而非错误,做了两个尝试:
- 在规则配置里设置了
severity: "warning",但IDE还是显示红色错误 - 尝试全局配置
defaultSeverity: "warning",依旧无效,从截图能看到代码被红色波浪线标记,提示级别还是Error
问题排查与解决步骤
1. 修正规则的启用状态(最可能的原因)
看你的规则配置,第一个参数写的是false——这会直接禁用这个规则,但你说它还在触发错误,说明要么配置没被IDE读取,要么你写错了启用状态!正确的配置应该把启用状态设为true:
"no-cross-import": [ true, { "root": "src", "ignoredSources": [ "Spec\\.ts$" ], "allowed": { "patterns": [ "legacy" ] }, "severity": "warning" } ]
2. 刷新IDE缓存,让配置生效
IntelliJ经常会缓存旧的配置,导致新修改的规则不生效,你可以这么操作:
- 点击顶部菜单
File → Invalidate Caches... - 勾选
Clear file system cache and local history,然后点击Invalidate and Restart重启IDE - 重启后,去
Settings → Languages & Frameworks → TypeScript → TSLint确认IDE是用的你项目根目录的tslint.json,而不是全局配置
3. 手动调整IDE里的规则级别
有时候IDE会把TSLint的Warning强制映射成Error,你可以手动改回来:
- 打开
Settings → Editor → Inspections - 找到
TypeScript → TSLint,展开后找到no-cross-import规则 - 在右侧的
Severity下拉框里选择Warning,点击Apply保存
4. 检查TSLint版本与插件兼容性
如果你的TSLint版本太老,可能和IntelliJ的TSLint插件不兼容,导致severity配置失效。可以升级TSLint到最新稳定版(虽然TSLint已经被弃用,长期来看建议迁移到ESLint,但暂时可以先升级):
npm install tslint@latest --save-dev
补充说明
全局的defaultSeverity会被规则里单独设置的severity覆盖,所以只要你规则里的配置正确,全局设置不会影响这个规则的级别。
内容的提问来源于stack exchange,提问作者fatso88
相关产品推荐
相关产品推荐

