TS 导入导出那些事
理解TypeScript中的导入导出基础
在TypeScript中,模块化是通过导入和导出来实现的。这允许我们将代码分割成多个文件,每个文件可以独立开发、测试,并且能够以最小的冲突进行组合。例如,在一个简单的数学计算库中,我们可以将加法、减法等操作分别放在不同的文件中,然后通过export
关键字对外暴露这些功能,其他地方则可以通过import
来使用它们。
CommonJS和ES模块是两种不同的模块系统。CommonJS主要用于Node.js环境,其特点是同步加载模块;而ES模块则是JavaScript的标准模块系统,支持异步加载,更加适合浏览器环境。比如,当我们编写一个仅用于Node.js的应用时,我们可能会更倾向于使用CommonJS的语法,如require()
和module.exports
。
// CommonJS风格
const math = require('./math');
console.log(math.add(1, 2));
// ES模块风格
import {
add } from './math';
console.log(add(1, 2));
深入探讨默认导出与命名导出
默认导出和命名导出的主要区别在于,默认导出不限制导出的数量(实际上只能有一个),并且导入时可以自定义名称;而命名导出允许多个导出项,但在导入时需要指定确切的名字。例如,如果你想创建一个通用工具函数库,你可能希望某些核心功能作为默认导出,以便用户更容易地引入。
考虑这样一个场景:我们有两个函数add