我正在将大型代码库迁移到Typescript,但希望能够很好地处理何时&我应该在哪里使用某些东西。
现在我在模块中有一些大型命名空间:
(function (nameSpace) {
var privateVariables = '';
function privateFunctions () { }
// Public methods
nameSpace.someMethodHere = function () { };
}(window.nameSpace = window.nameSpace || {}));
我的问题是在 TypeScript 中,在将这些变成只是类时,我有什么区别/好处吗?或者它应该只是一个包含类(每个方法)的大型模块吗?
module nameSpace {
export class someMethodHere {
// etc
}
// more classes (my methods) here ??
}
-OR -
class nameSpace {
someMethodHere () {
// code
}
// more prototyped methods here
}
或者我应该以我目前的模块方式设置它们?我正在尝试,它只是一直给我错误,不知道我如何在没有课程的情况下在模块内部nameSpace.someMethodHere
做什么!
答案 0 :(得分:11)
基本上,模块适用于将所有代码打包到一个方便的全局对象中,而类可以智能地构建代码和数据表示。
答案 1 :(得分:8)
这取决于。一个模块应该是一组离散的“事物”,而不仅仅是一个混乱的不同类的集合,所以如果它们看起来像是在一起,那么使用一个模块对它们进行分组。
我相信TypeScript团队正在等待人们在发布指南之前如何使用该语言,但我想人们会发布一个他们当前发布脚本的模块 - 所以jQuery将是一个模块,每个jQuery插件都是一个模块,测试框架将是一个模块,而AOP框架将是一个模块 - 例如。