You need to enable JavaScript to run this app. TypeScript配合ESLint使用express.Router出现校验报错如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript配合ESLint使用express.Router出现校验报错如何解决?

问题根因
  • 第一个报错来自ESLint的new-cap校验规则:规则默认要求所有首字母大写的函数必须作为构造函数使用new调用,但express.Router是官方设计的工厂函数,本身就不需要用new调用。
  • 第二个TypeScript报错是因为@types/express的类型定义中没有给Router提供构造签名,强制用new调用不符合类型约束,加类型注解也解决不了本质问题。
可行解决方案(无需修改全局ESLint配置)

方案1:单行忽略new-cap校验

在调用行上方加单行ESLint忽略注释,仅屏蔽这一行的new-cap校验,不影响其他代码的规则生效:

// eslint-disable-next-line new-cap
const router = express.Router();

方案2:给express.Router设置小驼峰别名

new-cap仅校验调用时的函数名首字母大小写,你可以先把express.Router赋值给一个小驼峰命名的变量再调用,完全符合规则要求:

const createExpressRouter = express.Router;
const router = createExpressRouter();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 13:36:06