能否在同一文件导出Class与Function?如何导出testOne函数?
解决方案
1. 导出testOne函数的方法
有两种常用的实现方式:
方法一:挂载到Test实例上导出
把testOne绑定到Test的实例上,保持原有导出结构的同时新增函数:
class Test { doOne = async () => { ... }; } const testOne = async () => { ... } const testInstance = new Test(); testInstance.testOne = testOne; module.exports = testInstance;
导入后可以直接通过实例调用testOne,同时保留原有的doOne方法调用逻辑。
方法二:导出包含多内容的对象
直接导出一个聚合对象,同时包含Test实例、testOne函数甚至Test类:
class Test { doOne = async () => { ... }; } const testOne = async () => { ... } module.exports = { testInstance: new Test(), testOne, Test };
导入时可以按需解构使用:
const { testInstance, testOne, Test } = require('./你的文件路径'); // 调用实例方法:testInstance.doOne() // 调用函数:testOne() // 新建Test实例:const newTest = new Test();
2. 能否同时导出Test类与testOne函数?
完全可以,上面的方法二已经实现了这个需求。如果你的环境支持ES模块语法,也可以用更简洁的写法:
export class Test { doOne = async () => { ... }; } export const testOne = async () => { ... } // 同时导出默认的Test实例 export default new Test();
导入时的用法:
import testInstance, { Test, testOne } from './你的文件路径';
内容的提问来源于stack exchange,提问作者upadhya
相关产品推荐
相关产品推荐

