类
TypeScript 的 class 基本是 ES class + 类型注解 + 可见性等语法。类型检查仍遵循结构化类型:私有/# 私有字段会引入「名义化」成分,使兼容性规则更严格(版本间细节见发布说明)。
成员可见性
public(默认)、private、protected。#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配置)。
- 类作类型与值双重存在:值侧是构造器,类型侧是实例形状。
相关链接
- 接口与类型别名(
implements、构造签名) - 泛型(泛型类)
- 装饰器
- tsconfig配置(
useDefineForClassFields、experimentalDecorators等)