typescript命名空间-学习笔记

558 阅读1分钟

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下再继续写命名空间