这个命名空间也算是typescript的一大特色了,但命名空间不仅仅存在ts中 ,因为博主搞过一段时间php,c++也知道在他们中也有命名空间的存在,所以来学习ts中的命名空间上手也比较快。
命名空间一个最明确的目的就是解决重名问题。
假设这样一种情况,当一个班上有两个名叫小明的学生时,为了明确区分它们,我们在使用名字之外,不得不使用一些额外的信息,比如他们的姓(王小明,李小明),或者他们父母的名字等等。
定义规则是通过一个namespace关键字 里面可以定义接口和方法
namespace A {
export function sum(a:any,b:any){
console.log(a+b);
}
}
namespace B {
export function sum(a:any,b:any){
console.log(a+b);
}
}
A.sum(1,2);
B.sum(3,4);
定义在不同的命名空间中 可以有相同的函数和接口名字
由于是外部不可见 所以得通过export关键字进行导出 外部才可以使用
当然如果项目后期比较大的话 我们可能把一个命名空间内的代码全部存放到一个文件中
a.ts
namespace A {
export function sum(a:any,b:any){
console.log(a+b);
}
}
然后在 b.ts中进行使用
在ts 3.5 版本及之后的版本中 不能再使用
下面得这种导入方式了 统一使用es6得 export 和 import得模块导入导出规范
///
查看自己的 typescript版本 是 tsc --v
a.ts
export namespace A {
export function sum(a:any,b:any){
console.log(a+b);
}
}
b.ts
import {A} from "./a"
A.sum(1,2);
就可以使用了 关注我 持续更新前端知识