模块 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();
posted @ 2022-06-03 20:43  真的想不出来  阅读(53)  评论(0)    收藏  举报