我认为这是一个正确实现泛型的问题,但我不确定。如何从超类方法而不是超类类型返回子类型
我创建代表这里的问题Github的要点是: https://gist.github.com/ORESoftware/66b72b4b85262d957cb03ad097e4743e
说我有这个超:
class A {
foo(): A {
return this;
}
}
和几个子类,一个例子看起来像这样:
class B extends A {
bar(): B {
return this;
}
}
所以如果我做
new B().foo().bar()
这将在运行时工作,但它不编译与TypeScript。这是因为foo()
声明返回类型为A
,而不是类型B
。
如何返回this
的类型,而不是声明foo()
总是返回A
?
我尝试这样做:
,但我得到这个错误:
那么我们有它,谢谢! –