- TypeScript 简介与优势
- TypeScript 安装与使用
- TypeScript 变量声明
- TypeScript 基础类型
- TypeScript BigInt
- TypeScript Symbol
- TypeScript 元组(Tuple)
- TypeScript 枚举(Enum)
- TypeScript Never 与 Unknown
- TypeScript 接口(Interface)
- TypeScript 类(Class)
- TypeScript 函数(Function)
- TypeScript 字面量类型
- TypeScript 类型推断
- TypeScript 类型断言
- TypeScript 类型保护
- TypeScript 泛型(Generic)
- TypeScript 类型兼容性
- TypeScript 交叉类型
- TypeScript 联合类型
- TypeScript 类型别名
- TypeScript 索引类型
- TypeScript 映射类型
- TypeScript 条件类型
- TypeScript is 关键字
- TypeScript infer 关键字
- TypeScript Truthy 与 Falsy
- TypeScript 迭代器(Iterator)
- TypeScript 生成器(Generator)
- TypeScript 装饰器(Decorator)
- TypeScript Reflect Metadata
- TypeScript 混入(Mixins)
- TypeScript 模块
- TypeScript 命名空间
- TypeScript 声明合并
- TypeScript 编译选项
- TypeScript tsconfig.json 配置
- TypeScript TSLint 与 ESLint
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
TypeScript 命名空间
命名空间同样是为了避免变量命名冲突,TypeScript 官方将命名空间视为“内部模块”,上节介绍的模块被视为“外部模块”。
如果声明相同名称的命名空间,TypeScript 编译器会将其合并为一个声明,具体的合并规则会在下节介绍。
1. 慕课解释
使用 namespace
关键字来声明命名空间。
TypeScript 的命名空间可以将代码包裹起来,只对外暴露这个命名空间对象,通过 export
关键字将命名空间内的变量挂载到命名空间对象上。
2. 命名空间的本质
命名空间本质上就是一个对象,将其内部的变量组织到这个对象的属性上:
namespace Calculate {
const fn = (x: number, y: number) => x * y
export const add = (x: number, y:number) => x + y
}
来看其编译后的结果:
"use strict";
var Calculate;
(function (Calculate) {
var fn = function (x, y) { return x * y; };
Calculate.add = function (x, y) { return x + y; };
})(Calculate || (Calculate = {}));
那么,我们就可以访问 Calculate 对象上的 add 属性了:
Calculate.add(2, 3)
命名空间主要是为解决全局作用域内重名问题,而这一问题随着模块化编程的使用,已经得到了解决。
3. 小结
通过本节的介绍,知道命名空间的使用方法即可,在 TypeScript 中一般不推荐使用。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论