TypeScript 面试题
目录

请解释类的存取器 (Accessors),例如 get 和 set。它们有什么作用?

· 约 3 分钟读完 · 第 28 / 256 章

推荐答案

在 TypeScript 中,类的存取器(Accessors)是通过 get 和 set 关键字定义的,用于控制对类属性的访问和修改。get 用于定义获取属性值的方法,而 set 用于定义设置属性值的方法。通过存取器,可以在访问或修改属性时执行额外的逻辑,例如验证、计算或触发事件。

本题详细解读

1. get 存取器

get 存取器用于定义一个获取属性值的方法。当访问该属性时,get 方法会被自动调用。get 方法通常用于返回私有属性的值,或者在返回之前执行一些计算或逻辑。

在上面的例子中,age 是一个 get 存取器,当访问 person.age 时,get 方法会被调用,并返回 _age 的值。

2. set 存取器

set 存取器用于定义一个设置属性值的方法。当给该属性赋值时,set 方法会被自动调用。set 方法通常用于在设置属性值之前执行一些验证或逻辑。

在上面的例子中,age 是一个 set 存取器,当给 person.age 赋值时,set 方法会被调用,并在设置 _age 之前进行验证。

3. 存取器的使用场景

  • 数据验证:在设置属性值时进行验证,确保数据的有效性。
  • 计算属性:在获取属性值时进行计算,返回计算结果。
  • 触发事件:在属性值发生变化时触发相关事件。
  • 封装私有属性:通过存取器访问和修改私有属性,避免直接暴露私有属性。

通过使用 get 和 set 存取器,可以更好地控制类属性的访问和修改,增强代码的可维护性和安全性。