【发布时间】:2019-10-06 15:25:36
【问题描述】:
打字稿中有没有办法声明一个返回当前实例类型的方法?
例如:
class AnimalBuilder {
withColor:(color: Color): AnimalBuilder {
this.color = color;
return this;
}
}
class DogBuilder extends AnimalBuilder {
//builder methods specific to a dog.
}
。 .这样调用
new DogBuilder().withColor()
返回类型为DogBuilder 而不是AnimalBuilder。在 Objective-c 中,这样的东西称为instancetype。我在 TypeScript 中查看了InstanceType<T>,但无法弄清楚它是否在谈论同一件事。
这将允许以任何顺序在超类和子类上链接构建器方法,例如:
new DogBuilder().withColor(Color.BLUE).withBreed(breed).withEtc()
。 .无需在子类上添加任何额外的内容来支持这一点。
【问题讨论】:
标签: javascript typescript oop