TypeScript 支持三种主要的访问修饰符,这些修饰符用于类的属性和方法,用以控制它们的可访问性。这三种访问修饰符分别是:
-
public(公开的):如果成员被标记为 public,那么在任何地方都可以自由访问这些成员。在 TypeScript 中,如果没有明确指定访问修饰符,则默认为 public。例如,一个类的方法如果可以被外部直接调用,通常会设置为 public。
typescriptclass Employee { public name: string; constructor(name: string) { this.name = name; } public greet() { console.log(`Hello, my name is ${this.name}`); } } let emp = new Employee("Alice"); emp.greet(); // 输出:Hello, my name is Alice
-
private(私有的):如果成员被标记为 private,那么它只能在定义它的类内部访问。私有成员不允许在声明它的类的外部访问。
typescriptclass Employee { private salary: number; constructor(salary: number) { this.salary = salary; } private displaySalary() { console.log(`My salary is ${this.salary}`); } } let emp = new Employee(50000); // emp.displaySalary(); // 错误:displaySalary 是私有的。
-
protected(受保护的):protected 修饰符与 private 类似,但有一点不同,即在派生类中也可以访问 protected 成员。这使得 protected 修饰符非常适合在基类中定义,以便只有派生类可以访问的成员。
typescriptclass Employee { protected department: string; constructor(department: string) { this.department = department; } } class Manager extends Employee { constructor(department: string) { super(department); } public getDept() { console.log(`I manage the ${this.department} department.`); } } let mgr = new Manager("Sales"); mgr.getDept(); // 输出:I manage the Sales department.
这些访问修饰符帮助我们在大型项目中实现封装和隐藏实现细节,使得代码更加模块化和易于维护。
2024年11月29日 09:31 回复