我想要一些建议。我正在使用打字稿来创建对话框。一旦创建,它们就会自行处理,因为它们有自己的提交按钮并进行自己的检查。
以下两种编码方式有什么优点或缺点吗?到目前为止,我唯一能看到的是,带有导出的模块方法允许我隐藏一个函数,并在不导出它的情况下将其设为私有。当我使用 static 并尝试使用 private 修饰符时,它会在智能感知中显示一个锁定图标,但仍然允许我使用它。
module Dialog {
export class Modal {
static createAccessModal(link: Link) {
createModal(link);
}
static createAdminModal(link: Link) {
link.Modal.MaxHeight = 600;
link.Modal.Width = false;
createModal(link);
}
static private createModal(link: Link) {
...
}
}
}
或做:
module Dialog {
export module Modal {
export function createAccessModal(link: Link) {
createModal(link);
}
export function createAdminModal(link: Link) {
link.Modal.MaxHeight = 600;
link.Modal.Width = false;
createModal(link);
}
function createModal(link: Link) {
...
}
}
}
对于您想要实现的目标,模块方法是首选。
如果使用类形式,即使您永远不会新建对象实例,您也可以有效地定义构造函数,并直接在不能真正私有的构造函数上添加成员(正如您所观察到的)。
使用模块方法,您只需构造一个对象,并且您不导出的成员包含在设置该对象的闭包中 - 为您提供真正的隐私。
查看两者效果的一个好方法是将每个代码粘贴到http://www.typescriptlang.org/Playground/ http://www.typescriptlang.org/Playground/并分析生成的代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)