当前位置: 首页 > news >正文

TypeSript9 命名空间namesapce

我们在工作中无法避免全局变量造成的污染,TypeScript提供了namespace 避免这个问题出现

  • 内部模块,主要用于组织代码,避免命名冲突。
  • 命名空间内的类默认私有
  • 通过 export 暴露
  • 通过 namespace 关键字定义

TypeScript与ECMAScript 2015一样,任何包含顶级import或者export的文件都被当成一个模块。相反地,如果一个文件不带有顶级的import或者export声明,那么它的内容被视为全局可见的(因此对模块也是可见的)
ok,让我们看一个小例子

命名空间中通过export将想要暴露的部分导出

如果不用export 导出是无法读取其值的

namespace a {
    export const Time: number = 1000
    export const fn = <T>(arg: T): T => {
        return arg
    }
    fn(Time)
}
 
 
namespace b {
     export const Time: number = 1000
     export const fn = <T>(arg: T): T => {
        return arg
    }
    fn(Time)
}
 
a.Time
b.Time

嵌套命名空间

namespace a {
    export namespace b {
        export class Vue {
            parameters: string
            constructor(parameters: string) {
                this.parameters = parameters
            }
        }
    }
}
 
let v = a.b.Vue
 
new v('1')

抽离命名空间

a.ts

export namespace V {
    export const a = 1
}
b.ts

import {V} from '../observer/index'
 
console.log(V);
 //{a:1}

简化命名空间

namespace A  {
    export namespace B {
        export const C = 1
    }
}
 
import X = A.B.C
 
console.log(X);

合并命名空间





 

TypeSript10 模块学习-CSDN博客

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java集成百度地图API入门指南
  • dbsyncer同步mysql数据
  • SpringMVC基于注解的使用
  • stable diffusion和GAN网络的区别,优点缺点是什么
  • 【计算阶乘求和】计算1!+3!+5!+...+n!/(n+1)!
  • ElasticSearch 的单点部署环境搭建
  • 探索 Linux 内核启动过程
  • 二叉树 - 完全二叉树的节点个数
  • springsecurity 在web中如何获取用户信息(后端/前端)
  • 建筑项目管理软件市场新风向,10款热门软件解析
  • Python3.11使用labelimg
  • Android Activity 的启动模式(Launch Mode)
  • echarts倾斜横向堆叠柱状图
  • Spring系列之Spring Cache缓存注解的使用
  • 《第二十八章:性能优化 - 电量优化》
  • 时间复杂度分析经典问题——最大子序列和
  • [译]CSS 居中(Center)方法大合集
  • Android交互
  • Bootstrap JS插件Alert源码分析
  • input实现文字超出省略号功能
  • Java 最常见的 200+ 面试题:面试必备
  • Python学习之路13-记分
  • Redux 中间件分析
  • Redux系列x:源码分析
  • Swoft 源码剖析 - 代码自动更新机制
  • 阿里云应用高可用服务公测发布
  • 关于 Cirru Editor 存储格式
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 码农张的Bug人生 - 初来乍到
  • 使用common-codec进行md5加密
  • 项目实战-Api的解决方案
  •  一套莫尔斯电报听写、翻译系统
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • #include
  • $(selector).each()和$.each()的区别
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (3)选择元素——(17)练习(Exercises)
  • (day 12)JavaScript学习笔记(数组3)
  • (ibm)Java 语言的 XPath API
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (三) diretfbrc详解
  • (算法)区间调度问题
  • (万字长文)Spring的核心知识尽揽其中
  • (一)Neo4j下载安装以及初次使用
  • (转)用.Net的File控件上传文件的解决方案
  • ***通过什么方式***网吧
  • *算法训练(leetcode)第四十五天 | 101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104. 建造最大岛屿
  • .bashrc在哪里,alias妙用
  • .net 4.0发布后不能正常显示图片问题
  • .NET Core Web APi类库如何内嵌运行?
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .Net6 Api Swagger配置