TS中的模块
1.1 模块的概念
模块的的概念(官方) :
关于术语的一点说明:请务必注意一点,TypeScript 1.5里术语名已经发生了变化。“内部模块”现在称做“命名空间”。
“外部模块”现在则简称为“模块”模块在其自身的作用域里执行,而不是在全局作用域里;
这意味着定义在一个模块里的变量 ,函数,类等等在模块外部是不可见的, 除非你明确地使用export形式之-导出它们。
相反,如果想使用其它模块导出的变量,函数,类,接口等的时候,你必须要导入它们,可以使用import形式之。
模块的概念(自己理解) :
我们可以把一些公共的功能单独抽离成-一个文件作为一个模块。
模块里面的变量函数类等默认是私有的,如果我们要在外部访问模块里面的数据(变量、函数、类),
我们需要通过export暴露模块里面的数据(变量、函数、类…)。
暴露后我们通过import 引入模块就可以使用模块里面暴露的数据(变量、函数、类…)。
1.2 暴露数据和引入数据
- 方法1
/**
* 新建一个db.ts 将数据库方法封装并且暴露出来
* 暴露一个获取数据的方法
*/
export function getData():any[]{
return [
{
name:'123',
ahe:20
},
{
name:'123425',
age:30
}
]
}
export function saveData():boolean{
console.log('保存数据成功!')
return true;
}
/**
* 在index.ts文件中引入
* 在这里引入我暴露的函数
*/
import {
getData} from './modules/db'
console.log(getData());
saveData();
- 方法2
/**
* 暴露一个获取数据的方法
*/
function getData():any[]{
return [
{
name:'123',
ahe:20
},
{
name:'123425',
age:30
}
]
}
function saveData():boolean{
console.log('保存数据成功!')
return true;
}
export {
getData, saveData}
/**
* 在index.ts文件中引入
* 在这里引入我暴露的函数
*/
import {
getData} from './modules/db'
console.log(getData());
saveData();
- 方法3 export default(在一个模块里面只能使用一次)
/**
* 使用export default 暴露数据
*/
function getData():any[]{
return [
{
name:'123',
ahe:20
},
{
name:'123425',
age:30
}
]
}
function saveData():boolean{
console.log('保存数据成功!')
return true;
}
export default getData;
/**
* export default 引入数据
*/
import getData from './modules/db'
console.log(getData());