如何从库中覆盖现有的核心类?

伊琳娜

我使用npm库。这个库包含带有承诺方法的类存储库,以从服务器获取数据:

export class MapRepository {
 constructor(
    readonly globalEvents: MapGlobalEvent,
    baseWebApiUrl: string,
    readonly userKey: string = null
  ) {}

    getAllRegistry() {
       return this.credentialFetch(this.webApi.registry)
       .then((res) => res.ok && res.json())
       .catch(catchRequestError([]));
   }

}

我想加重此类,因此我要通过apRepository进行扩展。我需要它来替换使用Http客户端在RXJS可观察对象上的承诺。

export class CoreReonMapRepository extends MapRepository {
  constructor(private http: HttpClient) {
      super();// Here is problem
  }

  getAllRegistry(): Observable<any> {}
}

问题是,尽管MapRepository库中已加载了参数,但我仍应再次在父构造函数中传递参数我违反了规则,即顶级模块不应依赖于级别模块。

怎么解决呢?

库核心中的某个位置:

 this.repository = new MapRepository(
        this.globalEvents,
        webApiUrl,
        this.props.userKey
      );
羽毛艺术

您别无选择。您可能需要所有参数,然后将它们转发给父级的构造函数

export class CoreReonMapRepository extends MapRepository {
  constructor(
    private http: HttpClient,
    readonly globalEvents: MapGlobalEvent,
    baseWebApiUrl: string,
    readonly userKey: string = null
  ) {
      super(globalEvents, baseWebApiUrl, userKey);
  }

或者只是不对其进行扩展,而是创建实现与MapRepository相同的接口的装饰器/代理,因此,只需向其注入MapRepository的现有实例,而您其余的应用程序与新班

export class CoreReonMapRepository {
  constructor(
    private http: HttpClient,
    private innerMapRepository: MapRepository
  ) {}

  getAllRegistry() {
    // do other stuff
    return this.innerMapRepository.getAllRegistry()
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从本地存储库覆盖现有的Gradle插件?

来自分类Dev

如何从本地存储库覆盖现有的Gradle插件?

来自分类Dev

Java覆盖现有的类方法

来自分类Dev

如何在html中覆盖现有的meta标签?

来自分类Dev

如何覆盖现有的.txt文件

来自分类Dev

覆盖 Vaadin 中现有的 Css

来自分类Dev

如何在Typescript中扩展现有的类

来自分类Dev

如何将wcf服务添加到现有的类库

来自分类Dev

如何覆盖现有的zip文件而不是在Info-Zip中对其进行更新?

来自分类Dev

如何让现有的 Ubuntu 安装覆盖 Windows 分区?

来自分类Dev

如何列出Oracle数据库中现有的所有角色?

来自分类Dev

如何自动将外键添加到现有的Rails数据库中?

来自分类Dev

如何将clojurescript集成到现有的javascript代码库中?

来自分类Dev

如何从现有的写入数据库中生成CQRS中的读取数据?

来自分类Dev

如何将NullableBooleanField添加到现有的Django数据库中?

来自分类Dev

如何将列重写(复制)到现有的SQLite数据库中

来自分类Dev

如何自动将外键添加到现有的Rails数据库中?

来自分类Dev

django 如何为 postgresql 数据库中现有的多对多表定义模型

来自分类Dev

如何在打字稿中扩展现有的类

来自分类Dev

如何在现有的第三方扩展中重写/扩展Magento类

来自分类Dev

如何在asp.net mvc中向现有的类或对象添加新类型

来自分类Dev

如何将EF核心安装到现有数据库中?

来自分类Dev

如何使用现有的fork更新我的github库?

来自分类Dev

如何使现有的C#库与UWP兼容?

来自分类Dev

如何从现有的MongoDB数据库获取数据?

来自分类Dev

如何快速使用现有的SQLite数据库?

来自分类Dev

如何从现有的npm模块(codius)开发JavaScript库

来自分类Dev

如何使现有的C#库与UWP兼容?

来自分类Dev

如何正确接口现有的密封类?

Related 相关文章

  1. 1

    如何从本地存储库覆盖现有的Gradle插件?

  2. 2

    如何从本地存储库覆盖现有的Gradle插件?

  3. 3

    Java覆盖现有的类方法

  4. 4

    如何在html中覆盖现有的meta标签?

  5. 5

    如何覆盖现有的.txt文件

  6. 6

    覆盖 Vaadin 中现有的 Css

  7. 7

    如何在Typescript中扩展现有的类

  8. 8

    如何将wcf服务添加到现有的类库

  9. 9

    如何覆盖现有的zip文件而不是在Info-Zip中对其进行更新?

  10. 10

    如何让现有的 Ubuntu 安装覆盖 Windows 分区?

  11. 11

    如何列出Oracle数据库中现有的所有角色?

  12. 12

    如何自动将外键添加到现有的Rails数据库中?

  13. 13

    如何将clojurescript集成到现有的javascript代码库中?

  14. 14

    如何从现有的写入数据库中生成CQRS中的读取数据?

  15. 15

    如何将NullableBooleanField添加到现有的Django数据库中?

  16. 16

    如何将列重写(复制)到现有的SQLite数据库中

  17. 17

    如何自动将外键添加到现有的Rails数据库中?

  18. 18

    django 如何为 postgresql 数据库中现有的多对多表定义模型

  19. 19

    如何在打字稿中扩展现有的类

  20. 20

    如何在现有的第三方扩展中重写/扩展Magento类

  21. 21

    如何在asp.net mvc中向现有的类或对象添加新类型

  22. 22

    如何将EF核心安装到现有数据库中?

  23. 23

    如何使用现有的fork更新我的github库?

  24. 24

    如何使现有的C#库与UWP兼容?

  25. 25

    如何从现有的MongoDB数据库获取数据?

  26. 26

    如何快速使用现有的SQLite数据库?

  27. 27

    如何从现有的npm模块(codius)开发JavaScript库

  28. 28

    如何使现有的C#库与UWP兼容?

  29. 29

    如何正确接口现有的密封类?

热门标签

归档