NO9 Typescript中的模块 与命名空间

162 阅读1分钟

“内部模块”现在称做“命名空间”,“外部模块”现在简称为“模块”。 模块在其自身的作用域里执行,而不是在全局作用域里。如果需要使用模块里的变量、函数、类等,需要使用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('猫')