背景
在 TypeScript 中,类的可见性控制是通过访问修饰符实现的。这些修饰符决定了类成员(属性和方法)的访问权限。
访问修饰符
TypeScript 提供了三种主要的访问修饰符:
修饰符 |
描述 |
public |
默认修饰符,成员可以从任何地方访问。 |
private |
成员只能在声明它的类内部访问。 |
protected |
成员只能在声明它的类及其子类中访问。 |
示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| class Animal { public name: string; private age: number; protected type: string;
constructor(name: string, age: number, type: string) { this.name = name; this.age = age; this.type = type; }
public getName(): string { return this.name; }
private getAge(): number { return this.age; }
protected getType(): string { return this.type; } }
class Dog extends Animal { constructor(name: string, age: number, type: string) { super(name, age, type); }
public describe(): string { return `${this.getName()} is a ${this.getType()}`; } }
|
注意点
- 默认行为:如果不指定修饰符,默认为
public
。
- 子类继承:子类可以继承并使用父类中的
protected
成员,但不能直接使用 private
成员。
- 封装性:使用
private
和 protected
可以更好地封装数据和实现细节,提升代码安全性。
使用建议
选择合适的访问级别来保护数据完整性和实现模块化设计。对于外部不需要了解或修改的信息,优先考虑使用 private
或 protected
。