TypeScript中的访问修饰符,解锁你的代码访问密码!

cover.png

前言

访问修饰符是 TypeScript 中一个非常有用的特性,它可以帮助我们控制类成员的访问权限。

什么是访问修饰符?

在 TypeScript 中,访问修饰符用于限制类成员的访问权限。通过使用不同的访问修饰符,我们可以控制哪些类成员可以被访问,哪些成员是私有的,哪些成员是公共的等等。这样,我们可以在代码中实现封装和隐藏实现细节的目的,提高代码的可维护性和安全性。

TypeScript中的访问修饰符

TypeScript 支持以下三种访问修饰符:

1. public

public 是默认的访问修饰符,如果不显式指定访问修饰符,默认为 public。使用 public 修饰的成员可以在任何地方被访问。

class Person {


  public name: string;



  constructor(name: string) {

    this.name = name;

  }




  public sayHello() {
    console.log(`Hello, ${this.name}!`);
  }

}



const person = new Person("Alice");
person.sayHello(); // 输出: Hello, Alice!

在这个例子中,namesayHello 都是使用 public 修饰的。因此,它们可以被类的实例以及外部代码访问。

2. private

private 访问修饰符限制了成员只能在定义它们的类内部访问。这意味着私有成员对于类外部的代码来说是不可见的。

class Person {


  private age: number;



  constructor(age: number) {
    this.age = age;
  }




  private getAge() {
    return this.age;
  }

}



const person = new Person(25);
console.log(person.age); // 错误!无法访问私有成员 'age'
console.log(person.getAge()); // 错误!无法访问私有成员 'getAge'

在这个例子中,agegetAge 都是使用 private 修饰的。因此,它们只能在 Person 类的内部被访问。

3. protected

protected 访问修饰符将成员标记为受保护的,可以在定义它们的类及其子类中访问。

class Person {


  protected name: string;



  constructor(name: string) {

    this.name = name;

  }


}

class Employee extends Person {
  private salary: number;

  constructor(name: string, salary: number) {
    super(name);
    this.salary = salary;
  }

  public getSalary() {
    return this.salary;
  }

  public introduce() {
    console.log(`My name is ${this.name}.`);
  }
}

const employee = new Employee("Bob", 5000);
console.log(employee.name); // 错误!无法访问受保护的成员 'name'
console.log(employee.getSalary()); // 输出: 5000
employee.introduce(); // 输出: My name is Bob.

在这个例子中,name 是使用 protected 修饰的。它可以在 Person 类及其子类中被访问,但不能在外部代码中被访问。

总结

publicprivateprotected 这三种访问修饰符可以帮助我们控制类成员的访问权限。我们了解了它们的用法和作用范围,以及如何在类的实例化和继承过程中使用它们。

希望能够帮助大家更好地掌握 TypeScript 中的访问修饰符,并在实际开发中灵活运用。

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MY0dmtp5' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片