You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让TypeScript对不兼容类型的相等比较触发报错?

解决不同类型实例相等比较不报错的问题

TypeScript默认不会对C1.X === C2.X这类不同类实例的严格相等比较抛出错误,因为它默认兼容JavaScript的运行时行为。不过从TypeScript 5.2版本开始,你可以通过启用特定配置来触发这类错误提示。

启用strictEqualityChecks配置

在你的tsconfig.json中添加或修改以下配置项:

{
  "compilerOptions": {
    "strictEqualityChecks": true,
    // 其他已有配置...
  }
}

启用该配置后,TypeScript会对不兼容类型之间的===和!==比较进行严格检查,针对你提供的代码,会抛出类似如下的错误提示:

此条件将始终返回 'false',因为类型 'C1' 和 'C2' 没有重叠。

这个提示和你期望的“Comparison between incompatible types: C1 and C2”效果一致,能有效拦截这类无意义的跨类型相等比较。

注意事项

  • 该配置仅在TypeScript 5.2及以上版本可用,若你的TS版本较低,需要先升级版本。
  • 启用后会影响所有不兼容类型的相等比较,比如string和number的===比较也会触发错误,这有助于提前发现更多潜在的逻辑问题。

内容的提问来源于stack exchange,提问作者Hydroper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 05:33:07