TypeScript 命名空间发展史
“内部模块”现在叫做“命名空间”,任何使用module
关键字来声明一个内部模块的地方都应该使用namespace
关键字来替换。这就避免了让新的使用者被相似的名称所迷惑。
命名空间和模块区别
命名空间可以看做是一个微型模块。当我们先把相关的业务代码写在一起,又不想污染全局空间的时候,我们就可以使用命名空间。命名空间本质就是定义一个大对象,把变量/方法/类/接口…的都放里面。
在程序内部使用的代码,可以使用命名空间封装和防止全局污染;在程序外部使用的代码,可以使用模块封装和防止全局污染。由于模块也能实现相同的功能,所以大部分情况下用模块即可。
分离到多文件
当应用变得越来越大时,我们需要将代码分离到不同的文件中以便于维护。
多文件中的命名空间
现在,我们把Validation命名空间分割成多个文件。尽管是不同的文件,它们仍是同一个命名空间,并且在使用的时候就如同它们在一个文件中定义的一样。因为不同文件之间存在依赖关系,所以我们加入了引用标签来告诉编译器文件之间的关联。我们的测试代码保持不变。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!