前端/移动开发面试题更新 2026-08-05

在 TypeScript 中,类中定义的成员(包括属性和方法)可以使用哪些访问修饰符来控制其可见性?请分别说明这些修饰符的作用范围及其在继承场景中的表现。

前端/移动开发技术原理TypeScript

考察说明

考查对 TypeScript 类成员可见性的理解。

回答思路

  1. 【回答框架 1】TypeScript 提供三种访问修饰符:public、private 和 protected。未显式指定时,成员默认为 public,即任何地方都可访问。public 成员在类内部、子类以及类的外部(实例化对象)均可直接使用。
  2. 【回答框架 2】private 成员仅能在声明它的类内部访问,子类不能通过继承获得访问权限,外部更无法访问。这是用于封装私有实现细节的关键手段,确保类的内部状态不被外部随意修改。
  3. 【回答框架 3】protected 成员则介于两者之间,它允许在声明它的类内部以及其子类中被访问,但对于类的外部(即实例化对象)则是不可见的,这有助于在继承体系中提供共享的受保护逻辑,同时避免外部直接操作。
  4. 【回答框架 4】这三种修饰符共同作用,使开发者能够精确控制类成员的暴露范围,从而设计出更安全且易于维护的代码结构。理解它们在编译期和运行时(尤其是编译后的 JavaScript 行为)的区别,对使用 TypeScript 进行大型项目开发至关重要。
  5. 【关键点 1】TypeScript 类成员默认可见性是 public。
  6. 【关键点 2】private 成员只能在定义它的类内部访问,子类和外部均不可见。
  7. 【关键点 3】protected 成员可在类和子类中访问,但类外部不可见。
  8. 【关键点 4】可见性修饰符影响的是 TypeScript 编译期的类型检查,而编译后 JavaScript 的运行时行为不同。
  9. 【易错点 1】混淆 private 与 protected,常见误区是以为私有成员可被子类访问,实际不可。
  10. 【易错点 2】忽略默认可见性为 public,可能导致过度暴露成员。
  11. 【易错点 3】未意识到 TypeScript 的 private 是编译期约束,编译为 JavaScript 后并不存在真正的私有,可能产生误用。