我有一个扫雷游戏,我写在JS,现在正试图转换为typescript。在这款游戏中,我执行了一个"GameFactory",它包含许多私有功能,只输出需要公开的内容。关于typescript的方法,我似乎误解了一些非常基本的东西。
从本质上讲,根据我的收集,typescript不支持类内部的真正的私有变量,除非它们在构造函数或模块中。通过real private,我指的是对象上不可用的变量,而不是private关键字。在TypeScript中实现封装的正确方法是什么?把它和AngularJS的工厂/服务结合起来的最佳实践是什么?当然,我可以把我所有的代码都放在构造函数中,从而实现常规的JS函数作用域的封装,但在我看来这是错误的,因为它并没有真正使用TypeScript的功能。就像我说的,关于这些问题,我正在努力真正理解TypeScript范式,如果有人能给我指出正确的方向,那就太好了,因为我搜索了,无法找到一个很好的解释这些问题
如果你想让继承在JavaScript中可靠地工作,在TypeScript中实现封装的正确方法是什么?把它和AngularJS的工厂/服务结合起来的最佳实践是什么?
private
是不可能实现的。
function foo(){
let private = 123;
return {
getPrivate() { return private; },
setPrivate(val: number) { private = val; }
}
}