typescript命名空间-学习笔记
匿名函数包裹后形成的一个自成的域,然后可以通过传递值进去然后值是私有的,在js中老早就有了这种写法;在ts中也有了namespace命名空间的做法,写到这里,让我想到了最近在搞的后台系统也有这种namespace的玩意,在react+dva的写法中,稍后再回头看下是不是,记得那边是作用于每个不同的组件;
// js命名空间写法
(function(Utility) {
Utility.foo = 123;
})(Utility || (Utility = {}));
// 在ts中的命名空间的写法为
namespace Utility {
export function log(log) {
console.log(log);
}
export function error(error) {
console.log(error);
}
}
// 直接就引用定义的这个命名空间里面的值,即可
Utility.log('Call me');//Call me
Utility.error('maybe');//maybe
特别注意的是,楼上的ts命名空间写法,最后编译为js为楼一的js命名空间写法
Tips:命名空间是支持嵌套的,可以在Utility下再继续写命名空间