首页 > 解决方案 > TypeScript 泛型类型的泛型类型

问题描述

是否可以传入需要另一个泛型类型的泛型类型?这是我想要做的:

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>

但也不起作用。

标签: typescriptgenerics

解决方案


回答自己:目前还不可能(2019 年 1 月)。

这个问题正在这里讨论:https ://github.com/Microsoft/TypeScript/issues/1213


推荐阅读