typescript 提供 public、private、protected 三种访问修饰符:public 默认且任意位置可访问;private 仅类内可用,子类和实例不可见;protected 允许类及子类访问,但实例不可见;修饰符须前置,可与 readonly 或 static 共用。

TypeScript 为类成员提供了 public、private 和 protected 三种访问修饰符,用于控制属性和方法的可访问范围。默认是 public,不写修饰符等同于显式写 public。
public:任何地方都能访问
声明为 public 的成员可在类内部、子类、实例对象中任意访问。
- 可以省略不写(默认行为)
- 实例可直接通过点号读写:
obj.name、obj.getName() - 子类也能继承并调用
private:仅限当前类内部使用
private 成员只能在声明它的类内部访问,子类和实例都无法访问。
- 子类继承后也不能访问或重写该成员
- 编译时报错,运行时 JavaScript 不检查(但 TypeScript 编译阶段会拦截)
- 适合封装敏感数据或内部逻辑,比如
private token: string
protected:类内 + 子类可用,实例不可见
protected 成员允许在当前类及其子类中访问,但不允许通过实例访问。
- 子类可以继承并调用
protected方法或访问属性 - 但
const inst = new Child(); inst.protectedProp会报错 - 常用于设计模板方法模式或预留扩展点
注意点和常见写法
访问修饰符必须写在成员前面,紧邻类型或初始化值;不能用于构造函数参数(除非配合参数属性语法)。
- 参数属性简写:
constructor(private name: string)等价于在类中声明private name: string并在构造器中赋值 - 只读修饰符
readonly可与访问修饰符共用,如private readonly id: number - 静态成员也可加修饰符:
private static version = '1.0'
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











