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

TypeScript默认导出转普通导出方法及代码改造问题咨询

将TypeScript默认导出转换为命名导出的方法

没问题,我来帮你搞定这个转换。首先咱们先看你的示例代码,你现在是直接默认导出了express.Router()的实例,要改成命名导出其实很简单,分几步走就行:

1. 修改导出方式

先把Router实例赋值给一个明确的变量,然后用命名导出的方式导出它。修改后的代码大概是这样:

import * as express from 'express';
import { Controller } from './controller';

const controller = new Controller();
// 先把Router实例存到变量里
const router = express.Router()
  .post('/', controller.create)
  .get('/', controller.all)
  .get('/:id', controller.byId);

// 用命名导出替换默认导出
export { router };
// 或者你也可以直接在定义变量时就加export:
// export const router = express.Router()...

2. 同步修改导入代码

之后在其他文件里导入这个router的时候,要从原来的默认导入改成解构导入:

// 原来的默认导入
// import router from './your-router-file';

// 修改后的命名导入
import { router } from './your-router-file';

关于未明确导出的变量/对象/函数

如果你的代码里还有其他没导出的内容(比如示例里的controller变量),要是需要导出它们,直接给对应的声明加上export关键字就行:

// 直接导出controller
export const controller = new Controller();

或者也可以在文件末尾统一导出多个内容:

const controller = new Controller();
const router = express.Router()...;

// 统一导出多个命名项
export { controller, router };

这样就彻底把默认导出转换成命名导出啦,也符合你不想用默认导出的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:33:22