【发布时间】:2018-08-21 22:00:32
【问题描述】:
我作为纯 javascript 的前端开发人员已经有一段时间了。 正如您在下面的示例中看到的那样,我已经习惯了模块模式。现在我从 TypeScript 开始,我不可能得到相同的示例模式。目标是获得一种命名空间,以免破坏全球范围。 在 TypeScript 中实现相同目标的最佳方法是什么?谢谢
var myModulePattern = (function(){
// Private properties - more or less
var
moduleName = "myModulePattern",
moduleAuthor = "Bob"
;
// Private Methods - more or less
function sayModuleHello (){
return "Module " + moduleName + " made by " + moduleAuthor;
}
return {
// Public properties
createYear : 2018,
// Public Methods
greeting: function(){
console.log("Hi: "+sayModuleHello());
}
}
})();
// Exits an alone object literal, so is no possible create another instance of the "class"
// Really, this is like a namespace to not mess up the global scope
myModulePattern.greeting();
console.log(myModulePattern.createYear);
【问题讨论】:
-
难道 ES6 模块不能满足你对模块化的所有需求吗?
-
如果有人渴望模块模式的通用 TypeScript 实现(如 Crockford 所述),您可以看看这个:bit.ly/2J4kjNx
标签: javascript typescript design-patterns module