TypeScript 访问修饰符

2025年3月17日 | 阅读 3 分钟

与其他编程语言一样,Typescript 允许我们在类级别使用访问修饰符。它直接控制类的成员的访问。这些类成员是函数和属性。我们可以在自己的类内部、类的外部或其子类或派生类中使用类成员。

访问修饰符提高了类成员的安全性,并防止它们被非法使用。我们还可以使用它来控制类的数据成员的可见性。如果类不需要设置任何访问修饰符,TypeScript 会自动将 public 访问修饰符设置为所有类成员。

TypeScript Access Modifiers

TypeScript 访问修饰符有三种类型。这些是

  1. 公共
  2. 私有
  3. Protected(受保护的)。

了解所有 TypeScript 访问修饰符

让我们用一个给定的表格来理解访问修饰符。

访问修饰符可在类内访问可在子类中访问可通过类实例从外部访问
公共是的是的是的
Protected是的是的不能
私有是的不能不能

公共

在 TypeScript 中,默认情况下,类的所有成员(属性和方法)都是 public。因此,不需要使用此关键字为成员添加前缀。我们可以在任何地方访问此数据成员,没有任何限制。

示例

在上面的例子中,studCode 是 public,而 studName 在没有修饰符的情况下声明,所以 TypeScript 默认将它们视为 public。由于数据成员是 public 的,因此可以使用类的对象在类之外访问它们。

输出

TypeScript Access Modifiers

私有

private 访问修饰符不能在其包含类之外访问。它确保类成员仅对包含它的类可见。

示例

在上面的例子中,studCode 是 private,而 studName 在没有修饰符的情况下声明,因此 TypeScript 默认将其视为 public。如果我们从类外部访问 private 成员,它将给出编译错误。

输出

TypeScript Access Modifiers

Protected

Protected 访问修饰符只能在类及其子类中访问。我们不能从包含它的类的外部访问它。

示例

在上面的例子中,我们不能从 Student 类外部使用名称。我们仍然可以从 Person 类的实例方法中使用它,因为 Person 类派生自 Student 类。

输出

TypeScript Access Modifiers

Readonly 修饰符

  • 我们可以通过使用 readonly 修饰符使类的属性、类型或接口为只读。
  • 此修饰符需要在声明时或在构造函数中初始化。
  • 我们也可以从类外部访问 readonly 成员,但它的值不能更改。

示例

输出

TypeScript Access Modifiers