将 class 设为私有?

Making class private?

这个问题突然出现在我的脑海中,但我想在 typescript 中以某种方式将 classes 设为私有...这就是正在发生的事情

在我的文件夹 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 class 的实例。我不想要那个.. 我想以某种方式将 Circle class 设为私有。你如何在打字稿中实现这一点?

将您的 class(和其他类型)包裹在 modules 中。这是文件中类型的逻辑组织。现在您不能从外部文件引用它,除非您将 export 关键字添加到 class 定义中。 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;
  }
}
}