基本的声明
声明文件
1 |
|
export default XXX 和 export {XXX} 区别
- export default XXX:
这种方式导出 XXX 作为模块的默认导出。
导入时,可以使用任意名称来引入,默认导出不需要花括号。
只能有一个默认导出。
- export {XXX}:
这种方式导出 XXX 作为模块的命名导出之一。
导入时,必须使用花括号并且名称必须匹配。
一个模块可以有多个命名导出。
总结:export default 用于导出默认成员,而 export {} 用于导出一个或多个命名成员。导入时,对应的语法也有所不同。
导入文件
1 |
|
JavaScript、TypeScript文件怎么互相调用呢?
import
export
require
全局声明
模块导出声明
module.exports 和 exports的区别
node执行一个文件时,会在这个文件内生成一个exports和module对象,而module对象又有一个exports对象
- exports:对于本身来讲是一个变量(对象),它不是module的引用,它是{}的引用,它指向module.exports的{}模块。只能使用.语法 向外暴露变量。
- module.exports:module是一个变量,指向一块内存,exports是module中的一个属性,存储在内存中,然后exports属性指向{}模块。既可以使用.语法,也可以使用=直接赋值。
module.exports 和 export的区别
前者是ES5的写法,后者是ES6的写法
因为:
- module.exports初始值为一个空对象 {}
- require返回的是module.exports
export default class 中default作用
有default的时候,在引用时可以自定义名称,没有default时需要使用{}括起来并且名称必须与class名称一致,每个文件只能有一个default
1 |
|
注意
- 尽量使用ES6的写法,不要混用
- export default语法不兼容CommonJS和AMD的exports
- 使用 export = 导出一个模块,则必须使用 TypeScript 的特定语法 import module = require(“module”) 来导入此模块