模块 VS 命名空间 - 12
模块 VS 命名空间
一个文件就是一个模块,模块通过 export [default] 、import 来导出、导入。
同一个文件内,可以有多个命名空间,命名空间内 export 导出的内容,可以在外部访问到。
模块
- 模块是TS中外部模块的简称,侧重于代码和复用
- 模块在其自身的作用域里执行,而不是在全局作用域里
- 一个模块里的变量、函数、类等在外部是不可见的,除非你把它导出
- 如果想要使用一个模块导出的变量,则需要导入
export const a = 1;
export const b = 2;
export default "ruhua";
import name, { a, b } from "./1";
console.log(name, a, b);
命名空间
- 在代码量较大的情况下,为了避免命名冲突,可以将相思的函数、类、接口放置到命名空间内。
- 命名空间可以将代码包裹起来,只对外暴露需要安在外面访问的对象,命名空间内通过
export向外导出 - 命名空间是内部模块,主要用于组织代码,避免命名冲突的
namespace zoo {
export class Dog {
};
};
namespace home {
export class Dog {
};
};
let dog = new home.Dog();
let dog2 = new zoo.Dog();

浙公网安备 33010602011771号