在TypeScript中的getter/setter是什么?有什么作用?

535 阅读2分钟

"在TypeScript中,getter和setter是一种用于访问和修改类中私有属性的特殊方法。它们的作用是提供对私有属性的控制和封装,以便在获取和设置属性时执行特定的逻辑。

Getter(获取器)用于获取私有属性的值,它的语法是在属性名称前使用get关键字,后跟一个无参数的函数。函数体中可以编写获取属性值的逻辑,并通过return语句返回属性值。

Setter(设置器)用于设置私有属性的值,它的语法是在属性名称前使用set关键字,后跟一个带一个参数的函数。函数体中可以编写设置属性值的逻辑,通过参数来接收要设置的值。

下面是一个示例,演示了如何在TypeScript中使用getter和setter:

class Person {
  private _name: string;
  
  get name() {
    return this._name;
  }
  
  set name(value: string) {
    if (value.length < 3) {
      throw new Error(\"Name must be at least 3 characters long.\");
    }
    this._name = value;
  }
}

const person = new Person();
person.name = \"John\"; // 使用setter设置属性值
console.log(person.name); // 使用getter获取属性值

在上面的示例中,Person类定义了一个私有属性_name。通过使用getter和setter,我们可以控制对该属性的访问。在setter中,我们添加了一个逻辑以确保设置的名字长度至少为3个字符,如果不满足条件,则抛出一个错误。在getter中,我们直接返回私有属性的值。

使用getter和setter的好处是可以隐藏实现细节,同时提供一层抽象,以便在获取和设置属性时执行特定的逻辑。通过这种方式,我们可以确保属性的有效性和一致性,并且可以在需要时进行额外的处理。

总结来说,getter和setter在TypeScript中允许我们以一种更加控制和封装的方式访问和修改私有属性。它们提供了一种机制,使我们能够在获取和设置属性时执行特定的逻辑,以确保属性的有效性和一致性。"