TypeScript 命名空间-Namespace
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了TypeScript 命名空间-Namespace,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1824字,纯文字阅读大概需要3分钟。
内容图文
TypeScript 通过 tsc 编译成 JavaScript 时,用的是 var 全局变量,var 用多了会造成全局变量污染,为了解决这个问题,使用命名空间。
# 生成 package.json 文件
npm init -y
# 生成 tsconfig.json文件
tsc -init
命名空间
namespace Home {
class Header {
constructor() {
const elem = document.createElement("div");
elem.innerText = "This is Header";
document.body.appendChild(elem);
}
}
class Content {
constructor() {
const elem = document.createElement("div");
elem.innerText = "This is Content";
document.body.appendChild(elem);
}
}
class Footer {
constructor() {
const elem = document.createElement("div");
elem.innerText = "This is Footer";
document.body.appendChild(elem);
}
}
export class Page {
constructor() {
new Header();
new Content();
new Footer();
}
}
}
使用:
new Home.Page();
只能通过 Home 访问 Page,其他变量无法访问,避免了全局变量的污染。
这就是 TypeScript 给我们提供的类似模块化开发的语法,它的好处就是让全局变量减少了很多,实现了基本的封装,减少了全局变量的污染。
多命名空间(组件化)
namespace Components {
export class Header {
constructor() {
const elem = document.createElement("div");
elem.innerText = "This is Header";
document.body.appendChild(elem);
}
}
export class Content {
constructor() {
const elem = document.createElement("div");
elem.innerText = "This is Content";
document.body.appendChild(elem);
}
}
export class Footer {
constructor() {
const elem = document.createElement("div");
elem.innerText = "This is Footer";
document.body.appendChild(elem);
}
}
}
namespace Home {
export class Page {
constructor() {
new Components.Header();
new Components.Content();
new Components.Footer();
}
}
}
为了便利,需要把这两个 ts 文件编译输出成一个 js 文件,参考:TypeScript 多个文件编译成一个 js 文件
子命名空间
namespace Components {
export namespace SubComponents {
export class Test {}
}
//someting ...
}
相关文章:
TypeScript 多个文件编译成一个 js 文件
参考:
技术胖——TypeScript从入门到精通(22. 初识命名空间-Namespace)
技术胖——TypeScript从入门到精通(23. 深入命名空间-Namespace)
原文:https://www.cnblogs.com/xch-jiang/p/14260159.html
内容总结
以上是互联网集市为您收集整理的TypeScript 命名空间-Namespace全部内容,希望文章能够帮你解决TypeScript 命名空间-Namespace所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。