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
相关产品推荐
相关产品推荐

