Javascript TypeScript声明方法返回类型是类或子类的实例类型
typescript中是否有方法声明返回当前实例类型的方法 例如:Javascript TypeScript声明方法返回类型是类或子类的实例类型,javascript,typescript,oop,Javascript,Typescript,Oop,typescript中是否有方法声明返回当前实例类型的方法 例如: class AnimalBuilder { withColor:(color: Color): AnimalBuilder { this.color = color; return this; } } class DogBuilder extends AnimalBuilder { //builder methods specific to a dog.
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
,但无法确定它是否在谈论同一件事
这将允许以任何顺序在超类和子类上链接生成器方法,例如:
new DogBuilder().withColor(Color.BLUE).withBreed(breed).withEtc()
。无需在子类上添加任何额外的cruft来支持这一点 您可以在基类中省略return参数,或者如果您想在方法上显示return类型,您可以返回
this
请看
class AnimalBuilder {
color?: Color;
withColor(color: Color): this {
this.color = color;
return this;
}
}