前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TypeScript-命名空间

TypeScript-命名空间

原创
作者头像
杨不易呀
发布2023-09-29 20:33:32
1390
发布2023-09-29 20:33:32
举报
文章被收录于专栏:杨不易呀杨不易呀

命名空间概述

命名空间可以看做是一个微型模块 当我们想把相关的业务代码写在一起, 又不想污染全局空间的时候, 我们就可以使用 命名空间 本质就是定义一个大对象, 把变量/方法/类/接口 ... 等,都放里面

命名空间和模块区别

在程序内部使用的代码, 可以使用命名空间封装和防止全局污染 在程序内部外部使用的代码, 可以使用模块封装防止全局污染 总结: 由于模块也能实现相同的功能, 所以大部分情况下用模块即可

博主假设有这么一个需求: 定义一个检验传入的参数是否为 a-z 的功能。首先来分析一下该功能如果定义在当前 ts 文件当中会造成污染全局的问题,其实可以利用命名空间来解决该污染问题如下:

代码语言:typescript
复制
namespace Validation {
    const lettersRegexp = /^[A-Za-z]+$/;
    export const LettersValidator = (value) => {
        return lettersRegexp.test(value);
    }
}

console.log(Validation.LettersValidator('abc'));
console.log(Validation.LettersValidator(123));

如上代码需要注意的就是需要将外界需要使用的函数或者属性都需要通过 export 进行导出外界才可以进行调用,如上的命名空间我是定义在同一个 ts 文件当中的,那么没有定义在同一个文件当中该如何编写呢?首先需要创建一个 ts 文件来进行存储命名空间编写的功能性代码如下:

image-20211205203804597
image-20211205203804597
代码语言:typescript
复制
namespace Validation {
    const lettersRegexp = /^[A-Za-z]+$/;
    export const LettersValidator = (value) => {
        return lettersRegexp.test(value);
    }
}

然后在需要使用该命名空间的地方通过 /// <reference path="xxx"/> 的方式进行使用:

image-20211205203926680
image-20211205203926680
代码语言:typescript
复制
/// <reference path="./test.ts"/>
console.log(Validation.LettersValidator('abc'));
console.log(Validation.LettersValidator(123));

然后在通过 tsc --outFile index.js index.ts 来进行打包,打包之后的结果如下:

image-20211205204912593
image-20211205204912593
  • tsc --outFile:第一个参数为:打包之后的文件存储的位置
  • tsc --outFile:第二个参数为:需要打包哪个文件
输入图片说明
输入图片说明

最后

本期结束咱们下次再见?~

? 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ ?

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

输入图片说明
输入图片说明

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 命名空间概述
  • 命名空间和模块区别
  • 最后
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com