TypeScript 高级特性:从 Mixins 到异步编程
1. 使用 Mixins 组合类型
在经典的面向对象理论中,类可以通过继承来创建更专业的类。例如,从通用的 Vehicle 类继承出 Car 类,再从 Car 类继承出 SportsCar 类,每一层继承都会添加新的特性。
然而,当我们想要将两个或多个看似不相关的东西组合在一起时,继承可能就不是最佳选择了。以数据库应用为例,我们通常需要记录一条记录是否被删除以及最后更新的时间。一种做法是创建一个包含这些信息的基类,然后让其他类继承它:
class ActiveRecord {
Deleted = false;
}
class Person extends ActiveRecord {
constructor(firstName : string, lastName : string) {
this.FirstName = firstName;
this.LastName = lastName;
}
FirstName : string;
LastName : string;
}
这种方法存在两个问题:一是将记录的状态细节与实际记录本身混合在一起,这会导致类的职责不单一,降低代码的健壮性;二是如果要添加记录更新的日期,要么将更新日期添加到 ActiveRecord 类中,这样所有继承自它的类都会
超级会员免费看
订阅专栏 解锁全文
32

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



