是否可以传入需要另一个通用类型的通用类型?这是我想做的:
abstract class MyClass<Stream> {
abstract doSomething1(): Stream<number> // TS error here: Stream does not take generic parameter
abstract doSomething2(): Stream<string> // TS error here: Stream does not take generic parameter
}
// Implementations of the abstract class:
class MyObservableClass extends MyClass<Observable> {
doSomething1() { // returns Observable<number> }
doSomething2() { // returns Observable<string> }
}
class MyPromiseClass extends MyClass<Promise> {
doSomething1() { // returns Promise<number> }
doSomething2() { // returns Promise<string> }
}
我也尝试过:
doSomething<Stream, T>(): Stream<T>
但也不起作用。
答案 0 :(得分:1)
正在回答自己:这还不可能(2019年1月)。
此问题正在这里讨论:https://github.com/Microsoft/TypeScript/issues/1213