让班级私有化?

时间:2016-03-02 01:40:54

标签: class typescript private

这个问题刚刚出现在我的脑海中,但我想在打字稿中以某种方式私有化......所以这就是发生的事情

在我的文件夹Typescript / circle / circle.ts中我有:

class Circle {
  PI:number = 3.14;
  radius:number = 0;
  constructor(public radiusInput:number){
    this.radius = radiusInput  
  }
  getArea(){
    return this.PI*(this.radius*this.radius);
  }
  getCircumfrance(){
    return this.PI*2*this.radius;
  }
}
 var fourCircle:Circle = new Circle(5);

现在当我转到我的其他文件夹Typescript / enums / enums.ts时,我可以实际创建一个Circle类的实例。我不想那样..我想以某种方式使Circle类私有。你是如何用打字稿实现的?

1 个答案:

答案 0 :(得分:2)

将您的班级(和其他类型)包裹在modules中。这是文件中类型的逻辑组织。现在,您无法从外部文件中引用它,除非您将export关键字添加到类定义中。 module与c#中的namespace非常相似。

module MyTypes {
class Circle {
  PI:number = 3.14;
  radius:number = 0;
  constructor(public radiusInput:number){
    this.radius = radiusInput  
  }
  getArea(){
    return this.PI*(this.radius*this.radius);
  }
  getCircumfrance(){
    return this.PI*2*this.radius;
  }
}
}
相关问题