在 JavaScript (和 TypeScript) 中,模块系统允许我们在一个文件中定义变量、函数、类等,并在其他文件中导入和使用它们。ES6 引入了一种新的模块语法,提供了多种导入和导出的方式。以下是一些基本的导入方法:
1. 默认导入 (Direct Import):
当模块导出的是一个默认值时,我们可以使用默认导入。例如,一个模块可能是这样的:
1// moduleA.js
2export default function() {
3 console.log("This is the default export");
4}
导入它的方式是:
1import myFunction from './moduleA';
这里,myFunction
是我们自己选择的名字,你可以用任何你喜欢的名字来命名它。
2. 具名导入 (Named Import):
如果一个模块导出了多个值,并没有默认导出,或者我们只想导入其中的某几个值,我们可以使用具名导入。例如:
1// moduleB.js
2export function functionA() {
3 console.log("This is function A");
4}
5
6export function functionB() {
7 console.log("This is function B");
8}
导入的方式是:
1import { functionA, functionB } from './moduleB';
我们可以选择性地导入我们需要的函数或值。
3. 全部导入 (Wildcard Import):
如果我们想导入模块中的所有导出值,可以使用 *
。例如:
1import * as allFunctions from './moduleB';
然后,你可以使用 allFunctions.functionA
和 allFunctions.functionB
来访问这些函数。
4. 重命名导入 (Aliasing):
有时,为了避免命名冲突或提高代码的可读性,我们可能需要重命名导入的值。我们可以使用 as
关键字来做到这一点。例如:
1import { functionA as funcA, functionB as funcB } from './moduleB';
上面的代码将 functionA
导入为 funcA
,将 functionB
导入为 funcB
。
总之,ES6 的模块语法提供了强大的导入和导出机制,使得代码组织、重用和维护变得更加容易。