模块

命名空间

namespace tsfamily{
  export const va:number = 10
  export function myage():void {
    console.log("my age is 10")
  }
}

使用的时候

tsfamily.myage()

命名空间还可以嵌套

namespace tsfamily{
  namespace myage{
    export function myag(age: number):void {
      console.log("my age is " + age)
    }
  }
}
tsfamily.myage.myag(10)

命名空间用的很少,尽量别用

模块

每个模块都有自己的作用域,只有明确导出的部分才能在其它模块中使用,如果跟 go 语言作类比的话,go 自带模块,同一个 package 下的就是一个模块,开头大写就默认可导出。

创建模块

// myModule.ts
export const myDate: numer = 10
export function myFunction():void {
  console.log("my function")
}

导入并使用模块

import {myDate, myFunction} from "./myModule"

myFunction()