我認爲這是一個正確實現泛型的問題,但我不確定。如何從超類方法而不是超類類型返回子類型
我創建代表這裏的問題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
?
我嘗試這樣做:
,但我得到這個錯誤:
那麼我們有它,謝謝! –