Typescript获取泛型内部键的类型

时间:2018-01-02 18:55:45

标签: javascript typescript generics

我有一个名为Store的类,它将状态类型作为泛型。

class Store<T> {

}

当我需要扩展商店时,我正在做类似的事情:

interface State {
   entities: { [id: string] : Todo }
}

class Todos extends Store<State> {

}

但现在我想在我的商店中添加一个返回实体的方法。

class Store<T> {

  private _store: BehaviorSubject<T>;

  constructor(initialState) {
    super();
    this._store = new BehaviorSubject(initialState);
  }

  getEntities() {
     return this._store.map(state => state.entities);
  }      
}

在这种情况下,如何定义Todo类型的getEntities的返回类型?

1 个答案:

答案 0 :(得分:2)

您可以像在类声明中定义泛型类型一样定义getEntities泛型返回类型:

getEntities() : BehaviorSubject<T> {
   return this._store.map(state => state.entities);
}