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

能否在TypeScript中禁用TS(1345)对应的规则?

TypeScript真值检查错误的规避方案

问题

TypeScript 会针对如下合法调试代码抛出错误:An expression of type 'void' cannot be tested for truthiness.ts(1345):

const getFooPlusTwo = (foo) => console.log(foo) || foo + 2;

虽然有添加+、,等各种变通方法,但并非所有场景都适用,且这些操作毫无益处——JavaScript无需这些就能正常运行。大多数TypeScript规则都可关闭,请问是否存在可禁用的TypeScript或ESLint规则来避免该错误?

回答

没有办法单独禁用这个错误对应的TypeScript规则或ESLint规则,因为这是TypeScript类型检查的核心逻辑:console.log()的返回类型被标记为void,而TypeScript不允许对void类型的值做真值判断(比如用||、&&这类逻辑运算符),这属于类型系统的基础约束,不是可单独开关的规则。

如果只是临时调试用,最快的解决方式是用类型断言把console.log()的返回值强行转成any,绕过类型检查:

const getFooPlusTwo = (foo) => (console.log(foo) as any) || foo + 2;

或者换一种更清晰的写法,拆分日志和返回逻辑,完全避开类型问题:

const getFooPlusTwo = (foo) => {
  console.log(foo);
  return foo + 2;
};

要是你硬要彻底规避这类检查,只能降低TypeScript的整体严格度,比如把tsconfig.json里的strict字段设为false,但这会关掉很多有用的类型校验,严重削弱TypeScript的价值,非常不推荐。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 02:58:20