TypeScript的命名空间-NameSpace

TypeScript的命名空间-NameSpace

  • 初识TypeScript的命名空间-NameSpace
  • 深入了解TypeScript的命名空间-NameSpace

初识TypeScript的命名空间-NameSpace

新建个TSWeb文件夹,在VScode中打开文件夹,新建终端,在终端中输入

// 生成package.json
npm init -y // -y 所有的配置都选择默认的

再运行生成tsconfig.json

ts -init

创建一个入口文件:index.html
完成配置
TypeScript的命名空间-NameSpace_第1张图片
TypeScript的命名空间-NameSpace_第2张图片
在src中创建page.ts,写入
TypeScript的命名空间-NameSpace_第3张图片
在终端中运行 编译生成page.js

tsc

生成代码如下
TypeScript的命名空间-NameSpace_第4张图片
打开文件夹和浏览器,把index.html拖拽到浏览器中,显示如下:
TypeScript的命名空间-NameSpace_第5张图片

这里面代码中有个问题:都是全局变量。
代码量一大,这样操作会使全局变量过多,造成全局变量污染。
所以我们在就要使用-NameSpace
在page.ts 中用

namespace Home{
	class Header{.........}
	class Content{.........}
	class Footer{............}
	export c;ass Page{........} //暴露一个
}

再运行,再次编译更新page.js

tsc

在浏览器中F12打开console在里面输入查找Home.Footer、Home.Page
可以看到Home.Footer是显示undefined的,只有Home.Page是有显示的
TypeScript的命名空间-NameSpace_第6张图片

namespace的好处: 让我们的全局变量变得很少,实现了基本的封装,减少了全局变量的污染。

深入了解TypeScript的命名空间-NameSpace

在src中新建一个components.ts
TypeScript的命名空间-NameSpace_第7张图片
page.ts要修改一下
TypeScript的命名空间-NameSpace_第8张图片
在index.html 中引用多个script会造成代码沉余,所以去tsconfig.json进行两个配置

"module": "amd", //把commonjs改成amd,因为commonjs不支持 outFile
"outFile": "./build/page.js",  //多个ts文件编译生成同一个json文件

命名空间也可进行嵌套
TypeScript的命名空间-NameSpace_第9张图片

在终端运行编译

tsc

刷新浏览器页面,在控制台中可显示
在这里插入图片描述

你可能感兴趣的:(TypeScript,typescript,vscode,javascript)