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

TypeScript开发环境出现TS2695逗号运算符左侧无副作用报错

问题根因

这个报错是开发环境运行TS的工具ts-node触发了noUnusedExpressions校验规则,识别到代码转译后生成的逗号运算符左侧的0没有被使用也没有副作用,因此抛出错误。你直接执行tsc编译时默认没有开启这个规则,所以不会报错;注释掉路由注册代码后snippets.ts模块不会被导入,也就不会触发该文件的编译校验,符合你遇到的现象。

解决方案

按优先级从高到低尝试即可:

方案1:清理ts-node缓存

多数情况是缓存导致的校验异常,先执行清理缓存命令再重启服务:

npx ts-node --clear-cache
npm run dev:server

方案2:关闭对应校验规则

在tsconfig.json的compilerOptions中新增配置,关闭该校验规则即可:

{
  "compilerOptions": {
    // 保留原有其他配置不变
    "noUnusedExpressions": false
  }
}

方案3:调整Router调用方式

修改src/routes/snippets.ts的导入与调用写法,避免转译生成触发校验的逗号运算符代码:

// 将原有的命名导入Router改为导入整个express实例
import express from 'express';
import { createSnippet } from '../controllers/snippets';

// 改为从express实例调用Router方法
export const snippetRouter = express.Router();

snippetRouter.route('/').post(createSnippet);

方案4:调整开发启动脚本

修改package.json中的dev:server脚本,给ts-node加上仅转译不做类型校验的参数,类型校验可以靠编辑器或单独执行tsc完成:

"dev:server": "nodemon --exec ts-node --transpile-only src/server.ts"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:06:02