TypeScript 的 class 基本是 ES class + 类型注解 + 可见性等语法。类型检查仍遵循结构化类型:私有/# 私有字段会引入「名义化」成分,使兼容性规则更严格(版本间细节见发布说明)。


成员可见性

  • public(默认)、privateprotected
  • #field:JavaScript 私有字段,运行时真正不可见;与 private(仅编译期)不同。

readonly 与参数属性

class User {
  constructor(
    readonly id: string,
    public name: string,
    private secret: string,
  ) {}
}

参数属性合并声明字段与构造参数赋值。


implements

interface CanFly {
  fly(): void
}
class Bird implements CanFly {
  fly() {}
}

只检查实例侧形状;不自动为方法补 this 类型。接口定义见 接口与类型别名


抽象类与方法

abstract class Base {
  abstract run(): void
}
  • 不可直接 new
  • 子类须实现抽象成员。

静态成员与 this 类型

  • 静态侧无实例 this
  • 实例方法若需要「返回 this」做链式调用,可用 多态 this 或泛型辅助类。

与类型层级

  • 装饰器 常用于类与方法元数据(见该文与 tsconfig配置)。
  • 类作类型双重存在:值侧是构造器,类型侧是实例形状。

相关链接