React模块存在多个默认导出报错问题求助
问题原因与解决方法
问题原因
- 你的路由文件中存在多个
export default语句(TS提示第40、60行),TypeScript的类型检查规则严格禁止单个模块有多个默认导出,虽然Node.js运行时可以正常执行,但TS会抛出语法错误。 - 改用
module.exports = bookingRouter后报错,大概率是因为该语句没有写在文件顶级作用域(比如嵌套在函数、条件判断块内),或是文件同时混用了ES模块(export/import)与CommonJS(module.exports/require)语法,导致TS类型检查冲突。
解决方法
清理重复的默认导出
找到文件第40、60行的export default语句,只保留对应bookingRouter的那一条,删除其他多余的默认导出语句。正确使用CommonJS导出(若需保留该写法)
确保module.exports = bookingRouter;写在文件的顶级作用域,不要嵌套在任何代码块内;同时避免在同一个文件中混用ES模块和CommonJS语法,二选一保持统一。统一使用ES模块语法(推荐)
既然是TypeScript项目,建议全程使用ES模块规范:用import引入依赖,用export default bookingRouter导出路由,确保整个文件只有一个默认导出。同时检查tsconfig.json的module配置,建议设置为ESNext或CommonJS,保证语法与编译配置匹配。
内容的提问来源于stack exchange,提问作者Klaudia Wróblewska
相关产品推荐
相关产品推荐

