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

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

前言

访问修饰符是 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 中的访问修饰符,并在实际开发中灵活运用。

原文链接:https://juejin.cn/post/7241975039980814395 作者:

(0)
上一篇 2023年6月8日 上午10:21
下一篇 2023年6月8日 上午10:31

相关推荐

发表回复

登录后才能评论