文章内容
2024/11/9 0:53:47,作 者: 黄兵
TypeScript protected 理解
在 Angular 中,protected
是 TypeScript 中的一个访问修饰符,它用于限制类成员(如属性或方法)的访问权限。与 public
和 private
修饰符相比,protected
具有更严格的访问控制。
protected
访问修饰符的作用:
- 允许类内部访问:
protected
修饰符表示类的成员(属性或方法)只能在类内部或者子类中访问。即使类外部无法直接访问该成员,但继承该类的子类仍然可以访问和修改这些protected
成员。 - 禁止外部直接访问:与
private
修饰符不同,protected
允许子类访问该成员,但不能在类的外部直接访问。
举个例子:
假设你有一个基类 Vehicle
和一个派生类 Car
:
class Vehicle { protected model: string; constructor(model: string) { this.model = model; } protected displayModel(): void { console.log(`The vehicle model is: ${this.model}`); } } class Car extends Vehicle { constructor(model: string) { super(model); } public showCarDetails(): void { console.log(`Car model is: ${this.model}`); // 可以访问父类的 protected 属性 this.displayModel(); // 可以调用父类的 protected 方法 } } const myCar = new Car("Tesla"); myCar.showCarDetails(); // 正常调用子类中的方法 // 以下会报错,因为 model 是 protected,不能直接访问 // console.log(myCar.model); // 错误
总结:
protected
成员只能在当前类及其子类中访问,不能被外部直接访问。- 它提供了一种保护机制,让你可以在子类中访问和修改父类的成员,但不会让外部代码轻易修改它们。这通常用于封装和继承中。
Angular 中的 protected
典型应用:
在 Angular 中,protected
常常用于服务、组件、指令等类的继承中,以便子类能够继承父类的一些内部方法或属性,并对其进行扩展,但不允许外部直接访问。
例如,Angular 中的组件可能有一些 protected
的方法,供继承该组件的子类使用,而这些方法不能被外部直接访问或修改。
其它相关推荐:
1、[TypeScript] Unresolved basetypes
评论列表