我们知道命名空间:
namespace AAA {
export const aaa = "a"
}
namespace BBB {
export const bbb = "b"
}
console.log(AAA.aaa)
console.log(BBB.bbb)
但是什么是全局命名空间呢?
我们知道命名空间:
namespace AAA {
export const aaa = "a"
}
namespace BBB {
export const bbb = "b"
}
console.log(AAA.aaa)
console.log(BBB.bbb)
但是什么是全局命名空间呢?
你是不是在说全局变量,
创建一个UUU.d.ts文件(当然了,理论上名字可以随便起):
declare var UUU:any
这样就创建了一个全局变量UUU。
https://juejin.cn/post/6898710177969602574
8 回答4.7k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
在 TypeScript 中,命名空间是一种将相关联的代码封装起来以避免和全局范围内的其他代码发生命名冲突的技术。
全局命名空间是一种特殊类型的命名空间,在 TypeScript 中被称为
global namespace
。这是一个固定名称的命名空间,它可以在任何地方访问,并且可以包含任何数量的变量、接口、函数等内容。通常情况下,使用全局命名空间可能会导致与其他第三方库或模块产生冲突,因此不建议在项目中过多地使用全局命名空间。在声明全局命名空间时,需要使用
namespace
关键字加上命名空间名称,例如:然后可以在任何地方使用
MyNamespace
命名空间中定义的变量和函数:与全局命名空间不同,局部命名空间只能在特定的作用域中访问,即只能在声明命名空间的函数、类或模块内部使用。
在声明局部命名空间时,需要使用
namespace
关键字加上命名空间名称,并且将其放置在包含它的函数、类或模块中。例如:需要注意的是,在实际项目中,建议使用模块化组织代码,而不是过多地使用命名空间。因为命名空间会增加代码的复杂性,并可能导致命名冲突等问题。