在 TypeScript 中,属性修饰符是一种用来限制类成员访问权限的关键字。在本文中,我们将学习 TypeScript 中的三种属性修饰符:public、private 和 protected,并深入探讨它们的区别以及如何在代码中使用它们。
public 属性修饰符
public 属性修饰符是 TypeScript 中默认的修饰符,它表示该成员可以被类的实例和子类访问。如果我们在类中定义一个公共成员,那么它就可以在任何地方访问。
下面是一个使用 public 属性修饰符的示例代码:
// javascriptcn.com 代码示例 class Person { public name: string; constructor(name: string) { this.name = name; } public sayHello() { console.log(`Hello, my name is ${this.name}`); } } const person = new Person('Alice'); person.sayHello(); // 输出 "Hello, my name is Alice" console.log(person.name); // 输出 "Alice"
在上面的示例代码中,我们定义了一个名为 Person
的类,它有一个公共属性 name
和一个公共方法 sayHello
。我们可以在类的实例中访问这些成员,并且它们也可以被子类继承和访问。
private 属性修饰符
private 属性修饰符表示该成员只能在类内部访问,无法在类的实例和子类中访问。如果我们在类中定义一个私有成员,那么它只能在类的内部使用。
下面是一个使用 private 属性修饰符的示例代码:
// javascriptcn.com 代码示例 class Person { private name: string; constructor(name: string) { this.name = name; } public sayHello() { console.log(`Hello, my name is ${this.name}`); } } const person = new Person('Alice'); person.sayHello(); // 输出 "Hello, my name is Alice" console.log(person.name); // 报错,无法访问私有属性 "name"
在上面的示例代码中,我们将 name
属性定义为私有属性,因此它只能在类的内部使用。在类的实例中,我们无法访问和修改这个属性。
protected 属性修饰符
protected 属性修饰符表示该成员可以在类内部和子类中访问,但无法在类的实例中访问。如果我们在类中定义一个受保护的成员,那么它可以在类的内部和子类中使用。
下面是一个使用 protected 属性修饰符的示例代码:
// javascriptcn.com 代码示例 class Person { protected name: string; constructor(name: string) { this.name = name; } public sayHello() { console.log(`Hello, my name is ${this.name}`); } } class Employee extends Person { private department: string; constructor(name: string, department: string) { super(name); this.department = department; } public sayHello() { console.log(`Hello, my name is ${this.name} and I work in ${this.department}`); } } const person = new Person('Alice'); person.sayHello(); // 输出 "Hello, my name is Alice" console.log(person.name); // 报错,无法访问受保护的属性 "name" const employee = new Employee('Bob', 'IT'); employee.sayHello(); // 输出 "Hello, my name is Bob and I work in IT" console.log(employee.name); // 报错,无法访问受保护的属性 "name"
在上面的示例代码中,我们将 name
属性定义为受保护的成员,因此它可以在类的内部和子类中使用。在类的实例中,我们无法访问和修改这个属性。
总结
在 TypeScript 中,属性修饰符是一种用来限制类成员访问权限的关键字。public 属性修饰符表示该成员可以被类的实例和子类访问,private 属性修饰符表示该成员只能在类内部访问,protected 属性修饰符表示该成员可以在类内部和子类中访问。
在实际开发中,我们应该根据需求选择合适的属性修饰符来限制类成员的访问权限,从而提高代码的安全性和可维护性。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/658789eeeb4cecbf2dcc619a