【TypeScript】从零开始玩转TypeScript - TypeScript中的命名空间

本文介绍了TypeScript中的命名空间,作为内部模块的更名,其主要目的是解决重名问题。命名空间通过`namespace`关键字定义,可分割在多个文件中,通过`reference`标签引入。命名空间内的内容需`export`导出才能在外部访问。模块与命名空间的主要区别在于导入导出方式和使用场景,命名空间常用于同一文件的重名问题,模块适用于多文件间的重命名。虽然命名空间在日常开发中使用较少,但对于封装类库等场景仍有一定价值。
摘要由CSDN通过智能技术生成

前言

小伙伴们大家好。上篇文章中我们学习了TypeScript中的模块以及模块的几种导入导出方式,通过学习我们了解到模块可以很好的避免不同文件间变量函数等重名的问题(当然了模块的好处也不仅仅只有这一点)。前面说到模块可以很好的解决不同文件间的重名问题,那么同一个文件中有时候也是避免不了重名问题,那又该如何解决呢?不知道有没有小伙伴记得,在上篇文章中我们提到“在TypeScript1.5版本之前有两种模块:内部模块外部模块,而在1.5以后内部模块更名为命名空间,外部模块则更名为模块”。而这个命名空间就可以很好的解决同一个文件中的重名问题,或者干脆说命名空间就是可以解决重名问题不管是同一文件还是不同的文件,只要不是同一个命名空间即可。下面我们就来看下命名空间又是个啥?

命名空间

前面已经提到TypeScript中的命名空间是由原来的内部模块更名而来,它的最明确的目的就是为了解决重名问题。了解了命名空间的作用,下面我们再来看下,命名空间是如何使用,它都有哪些t特点:

  • 命名空间是通过关键字 **“namespace”**加 名称 来定义的,比如:namespace Shaps
  • 同一个文件中可以定义多个相同或不同的命名空间
  • 同一个命名空间也可以分割在不同的文件中定义,只要名称相同都认为它们是同一个命名空间
  • 如果想在一个文件中引用其它文件中的命名空间时,需要通过三斜杠加reference标签的形式引入。如:/// < reference path=“文件路径” />
  • 如果想在命名空间以外使用命名空间中的内容(变量、函数、类、接口等)时,被使用的内容必须要借助export导出,否则无法使用,也就是说只有通过export导出的内容才可以在命名空间外访问
  • 访问同一个命名空间中的变量、函数、类名等内容时可以直接访问
  • 如果访问不同命名空间中的变量、函数、类名等内容时,除了这些内容要通过export导出外,还需通过 命名空间.xxx 的形式进行访问
  • 命名空间可以层层嵌套,就是说一个命名空间中可以包含其他命名空间,访问时同样也是用命名空间.命名空间.xxx 的形式进行访问,内层的命名空间也需要被export

                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值