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

TypeScript修改Express命名空间遇ESLint报错的非规则修改解决办法

解决Express Request接口扩展时的ESLint命名空间报错问题

要避开ESLint的命名空间语法报错,同时实现扩展Express Request接口添加currentUser属性的需求,可以改用TypeScript的模块扩展语法,具体操作如下:

  • 将全局命名空间声明替换为模块扩展语法,同时让文件成为ES模块,符合ESLint的规范要求。

修改后的代码示例:

import type { Request } from 'express';

declare module 'express' {
  interface Request {
    currentUser?: User;
  }
}

// 标记文件为ES模块,确保扩展生效
export {};

说明

  1. 直接扩展express模块下的Request接口,符合ES2015模块语法规范,不会触发ESLint的"ES2015 module syntax is preferred over namespaces"报错。
  2. 导入Request类型是为了让TypeScript准确定位到要扩展的接口,也可以直接引用express模块(比如import 'express';)来达到相同效果。
  3. export {}是关键:它让当前文件被识别为ES模块,而非全局脚本,这样TypeScript的模块扩展机制才能正常生效。
  4. 确保User类型已在当前作用域正确声明或导入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 01:40:03