typescript 学习: 命名空间

39 阅读1分钟

ts中的命名空间

在项目开发中遇到了 namespace ,对于我对 ts 还不是很熟悉的人来说就突然忘了是干嘛的,于是就有了这篇文章。

在同一个模块中,多人开发可能会出现命名重复,为了避免这种情况出现,我们使用命名空间(namespace)

比如有两个开发人家A和B,同时在同一个文件中开发,并且同一文件中有两个test这个函数,这个时候为了不改函数名且互不影响对方的方法,采用命名空间来解决。

namespace A {
    function test(str: string): void {
        console.log("test", str)
    }
}

namespace B {
    function test(num: number): void {
        console.log("num", num)
    }
}

每个 namespace 都有一个私有空间, 所以代码无法直接使用

image.png

需要添加 export

image.png

如果在外边调用,在 namespace 关键字前面添加 export

image.png

在其他文件使用

import { A } from "./test.ts"

A.test("test"); // 调用命名空间的方法