模块的概念
在Typescript1.5里术语发生了变化,“内部模块”现在称为“命名空间”,“外部模块”现在简称模块。模块在其自身的作用域里执行,而不是在全局作用域里。这意味着定义在一个模块里的变量,函数,类等,在模块外部是不可见的,除非你明确地使用export形式之一导出他们。相反,如果想使用其他模块导出的变量,函数,类,接口等的时候,必须要使用import的形式之一导入他们。
其实也是
- 就把一些公共的功能单独抽离成一个文件来作为一个模块
- 在模块里面的变量,函数,类等都是默认私有的,如果需要在外部访问,那么要通过export暴露模块里的数据
- 使用其他模块的类,需要通过export先将数据导入到当前模块
// a.js
export const sayName = (name) => {
console.log('my name is' + name)
};
// const sayName = (name) => {
// console.log('my name is' + name)
// };
// expott { sayName };
// b.js
import { sayName } from './a.js';
sayName('张三');
重命名
// b.js
import { sayName as say } from './a.js';
say('张三');
默认导出
export default
每个模块都可以有一个default导出,并且每个模块只能有一个default导出。但是export可是使用多次
// a.js
const sayName = (name) => {
console.log('my name is' + name)
};
export default sayName;
// b.js
import sayName from './a.js';
say('张三');