Typescript类在使用private时无法访问

时间:2018-07-26 20:14:27

标签: javascript typescript ecmascript-6

我有一些看起来像这样的代码:

var router = express.Router();
router.route('/create')
    .get(function(req,res){
 campground.find({},function(err,campground){
   if(err){
   console.log(err)
 }
else{
console.log("successfully shown");
res.render("index.ejs",{campgrounds:campground})
 }
});
  app.use('', router);

然后当我尝试导入时:

export class Viewer {

  private scene = new Scene(); 

}

然后尝试:

viewer.scene现在可以使用,除非我更改:

const viewer = new Viewer();

TO

private scene = new Scene(); 

我的问题是:

如何在不将私人变成公开的情况下访问酒店?

1 个答案:

答案 0 :(得分:1)

尽管您没有在问题中明确说明这一点,但我想是要部分限制对成员的访问,例如,如果您希望允许从外部读取字段但不写字段,而您只需要设置一次,就可以使用只读修饰符

export class Viewer {

  private readonly scene = new Scene(); 

}

另一种选择是使用属性并为私有字段创建公共获取器

export class Viewer {
  get scene(): Scene {
    return this._scene;
  }

  private _scene = new Scene();

}