TypeScript 类的高级特性:静态类、严格属性初始化与 this 类型的运用
1. 编写静态类
在基于类的面向对象编程中,静态类常用于特定功能。然而,TypeScript 中不存在传统意义上的静态类,但它为类成员提供了静态修饰符,以实现多种目的。
静态类是不能实例化为具体对象的类,其作用是包含在代码中各处访问时都相同且仅存在一份的方法和其他成员。在像 Java 或 C# 这类仅以类作为抽象手段的编程语言中,静态类是必要的。但在 JavaScript 及 TypeScript 里,有更多的表达方式。
在 TypeScript 中,虽不能声明类为静态,但可定义类的静态成员。这些方法或属性并非对象的一部分,却能直接从类本身访问。
例如,仅含静态成员的类在 TypeScript 中是一种反模式。函数是存在的,并且可以按模块保存状态。通常,将导出函数和模块作用域的条目结合使用是更好的做法:
// 反模式
export default class Environment {
private static variableList: string[] = []
static variables(): string[] { /* ... */ }
static setVariable(key: string, value: any): void { /* ... */ }
static getValue(key: string): unknown { /* ... */ }
}
// 更好的做法:模块作用域的函数和变量
const
超级会员免费看
订阅专栏 解锁全文
555

被折叠的 条评论
为什么被折叠?



