3

我有一个用 JS 编写的扫雷游戏,现在正在尝试转换为 typescript。在这个游戏中,我实现了一个“GameFactory”,它包含很多私有函数,只导出需要公开的函数。关于打字稿的方法,我似乎误解了一些非常基本的东西。

本质上,据我所知,打字稿不支持类内部的真正私有变量,除非它们位于构造函数或模块中。通过真正的私有,我指的是对象上不可用的变量,而不是 private 关键字。

在 TypeScript 中实现封装的正确方法是什么?将它与 AngularJS 工厂/服务结合起来的最佳实践是什么?当然,我可以将所有代码放在构造函数中,从而实现常规的 JS 函数范围封装,但这对我来说似乎是错误的,因为它并没有真正使用 TypeScript 的功能。
就像我说的那样,我正在尝试真正理解关于这些问题的 TypeScript 范式,如果有人能指出我正确的方向,那就太好了,因为我搜索并无法找到对这些问题的良好解释

4

1 回答 1

1

在 TypeScript 中实现封装的正确方法是什么?将它与 AngularJS 工厂/服务结合起来的最佳实践是什么?

private如果您希望继承在 JavaScript 中可靠地工作,则无法实现。

但是,您可以只使用显示模块模式(并放弃继承/原型),例如:

function foo(){
    let private = 123;

    return {
        getPrivate() { return private; },
        setPrivate(val: number) { private = val; }
    }
}
于 2015-09-20T23:55:32.593 回答