“内部模块”现在称做“命名空间”,“外部模块”现在简称为“模块”。 模块在其自身的作用域里执行,而不是在全局作用域里。如果需要使用模块里的变量、函数、类等,需要使用export导出,然后在需要的地方import。 我们可以把一些公共的功能单独抽离成一个文件作为模块。
第一种导出方式
// export var dbUrl="xxx"
// export function getData():any[] {
// console.log('获取数据库的数据')
// return [
// {title: 'ttttt'}
// ]
// }
第二种导出方式
var dbUrl="xxx"
function getData():any[] {
console.log('获取数据库的数据')
return [
{title: 'ttttt'}
]
}
// export {dbUrl, getData}
默认导出方式
export default getData
引入方式
// import {getData as get, dbUrl} from './module/db'
默认引入
import getData from './module/db'
getData()
命名空间: 在代码量较大的情况下,为了避免各种变量命名相冲突,可以将相似功能的函数、类、接口等放置到命名空间内。 命名空间与模块的区别:命名空间为内部模块,主要用于组织代码,避免命名冲突。模块:侧重代码的复用。一个模块中可能有多个命名空间。
namespace A {
export function fn(params:string):void {
console.log(params)
}
}
A.fn('狗')
namespace B {
export function fn(params:string):void {
console.log(params)
}
}
B.fn('猫')