美文网首页
TypeScript16(namespace命名空间)

TypeScript16(namespace命名空间)

作者: BingJS | 来源:发表于2022-03-27 22:02 被阅读0次

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

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

TypeScript与ECMAScript 2015一样,任何包含顶级import或者export的文件都被当成一个模块。相反地,如果一个文件不带有顶级的import或者export声明,那么它的内容被视为全局可见的(因此对模块也是可见的)
命名空间中通过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);

合并命名空间
重名的命名空间会合并

相关文章

  • TypeScript16(namespace命名空间)

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

  • 命名空间 namespace

    /*命名空间:命名空间是一种封装事物的方法命名空间怎么声明?关键字: namespace 导入命名空间: use起...

  • 命名空间(namespace)

    命名空间,也称名称空间,名字空间。命名空间是用来组织和重构代码的。如同名字一样的意思,NameSpace(名字空间...

  • 命名空间 namespace

    命名空间 附加信息来区分不同库中相同名称的函数、类、变量等。使用了命名空间即定义了上下文。本质上,命名空间就是定义...

  • 命名空间namespace

    outer_func的local中的outer_arg的值为1.inner_func的local中的outer_a...

  • 命名空间(namespace)

    通常来说,命名空间是唯一识别的一套名字,这样当对象来自不同的地方但是名字相同的时候就不会含糊不清了。 为什么需要命...

  • namespace 命名空间

    避免命名冲突, 相当于引入类使用时需要nmsl.anmsl.b

  • 命名空间 namespace

    namespace 在typescript里给我们带来的好处就是给我们一个类似模块化开发的方式,让我们能尽量少的声...

  • C#随笔1

    1命名空间 语法 namespace 命名空间名称{若干个类型} ORnamespace 命名空间名称.子命名...

  • 四十、Docker网络-网络命名空间

    网络命名空间 Linux的Namespace(命名空间)技术是一种隔离技术,常用的Namespace有 user ...

网友评论

      本文标题:TypeScript16(namespace命名空间)

      本文链接:https://www.haomeiwen.com/subject/xtiyjrtx.html